Python实现扫描局域网活动ip(扫描在线电脑)

 更新时间:2015年04月28日 09:29:29   投稿:junjie  
这篇文章主要介绍了Python实现扫描局域网活动ip(扫描在线电脑),本文直接给出实现代码,需要的朋友可以参考下

内网的主机都是自动分配ip地址,有时候需要查看下有那些ip在使用,就写了个简单的脚本。
linux和windows下都可以用,用多线程来ping1-255所有的地址,效率不高,2分钟左右。 先凑合和用吧。

#-*- coding: utf-8 -*- 
#author: orangleliu date: 2014-11-12 
#python2.7.x ip_scaner.py 
 
''''' 
不同平台,实现对所在内网端的ip扫描 
 
有时候需要知道所在局域网的有效ip,但是又不想找特定的工具来扫描。 
使用方法 python ip_scaner.py 192.168.1.1 
(会扫描192.168.1.1-255的ip) 
''' 
 
import platform 
import sys 
import os 
import time 
import thread 
 
def get_os(): 
  ''''' 
  get os 类型 
  ''' 
  os = platform.system() 
  if os == "Windows": 
    return "n" 
  else: 
    return "c" 
   
def ping_ip(ip_str): 
  cmd = ["ping", "-{op}".format(op=get_os()), 
      "1", ip_str] 
  output = os.popen(" ".join(cmd)).readlines() 
   
  flag = False 
  for line in list(output): 
    if not line: 
      continue 
    if str(line).upper().find("TTL") >=0: 
      flag = True 
      break 
  if flag: 
    print "ip: %s is ok ***"%ip_str 
 
def find_ip(ip_prefix): 
  ''''' 
  给出当前的127.0.0 ,然后扫描整个段所有地址 
  ''' 
  for i in range(1,256): 
    ip = '%s.%s'%(ip_prefix,i) 
    thread.start_new_thread(ping_ip, (ip,)) 
    time.sleep(0.3) 
   
if __name__ == "__main__": 
  print "start time %s"%time.ctime() 
  commandargs = sys.argv[1:] 
  args = "".join(commandargs)   
   
  ip_prefix = '.'.join(args.split('.')[:-1]) 
  find_ip(ip_prefix) 
  print "end time %s"%time.ctime() 


是应用的时候: python ip_scaner.py 192.168.31.1 就会扫描 1-255所有的ip地址了。

D:\CodeHouse\python\tools>python ip_scaner.py 10.0.1.38 
start time Wed Nov 12 18:50:58 2014 
ip: 10.0.1.1 is ok *** 
ip: 10.0.1.2 is ok *** 
ip: 10.0.1.24 is ok *** 
ip: 10.0.1.38 is ok *** 
ip: 10.0.1.39 is ok *** 
end time Wed Nov 12 18:52:16 2014 

就这样。

相关文章

  • 使用python实现学生信息管理系统

    使用python实现学生信息管理系统

    这篇文章主要为大家详细介绍了使用python实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • Python使用DPKT实现分析数据包

    Python使用DPKT实现分析数据包

    dpkt项目是一个Python模块,主要用于对网络数据包进行解析和操作,z这篇文章主要为大家介绍了python如何利用DPKT实现分析数据包,有需要的可以参考下
    2023-10-10
  • Python pymysql向SQL语句中传参的多种方法

    Python pymysql向SQL语句中传参的多种方法

    这篇文章主要介绍了Python-pymysql如何向SQL语句中传参,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • python实现requests发送/上传多个文件的示例

    python实现requests发送/上传多个文件的示例

    今天小编就为大家分享一篇python实现requests发送/上传多个文件的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • 解决py2exe打包后,总是多显示一个DOS黑色窗口的问题

    解决py2exe打包后,总是多显示一个DOS黑色窗口的问题

    今天小编就为大家分享一篇解决py2exe打包后,总是多显示一个DOS黑色窗口的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 手把手教你pycharm专业版安装破解教程(linux版)

    手把手教你pycharm专业版安装破解教程(linux版)

    这篇文章主要介绍了 手把手教你pycharm专业版安装破解教程(linux版),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 详解python播放音频的三种方法

    详解python播放音频的三种方法

    这篇文章主要介绍了python播放音频的三种方法,每种方法通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Python利用request库实现翻译接口

    Python利用request库实现翻译接口

    这篇文章主要为大家详细介绍了Python如何利用request库打造自己的翻译接口,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04
  • python发送邮件实例分享

    python发送邮件实例分享

    这篇文章主要为大家详细介绍了python发送邮件实例分享,教大家如何实现邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • python实现替换word中的关键文字(使用通配符)

    python实现替换word中的关键文字(使用通配符)

    今天小编就为大家分享一篇python实现替换word中的关键文字(使用通配符),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论