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


Posted in Python onApril 28, 2015

内网的主机都是自动分配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执行系统命令的常见方法(全)
Oct 22 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
利用python将pdf输出为txt的实例讲解
Apr 23 Python
详解python中的json和字典dict
Jun 22 Python
Python绘制正余弦函数图像的方法
Aug 28 Python
python实现简单的文字识别
Nov 27 Python
python根据多个文件名批量查找文件
Aug 13 Python
Django框架创建项目的方法入门教程
Nov 04 Python
基于Python 中函数的 收集参数 机制
Dec 21 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
Apr 24 Python
在pycharm中文件取消用 pytest模式打开的操作
Sep 01 Python
ASP.NET Core中的配置详解
Feb 05 Python
python将文本转换成图片输出的方法
Apr 28 #Python
Python psutil模块简单使用实例
Apr 28 #Python
Python RuntimeError: thread.__init__() not called解决方法
Apr 28 #Python
Python标准库defaultdict模块使用示例
Apr 28 #Python
Python自动重试HTTP连接装饰器
Apr 28 #Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 #Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 #Python
You might like
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
php csv操作类代码
2009/12/14 PHP
ThinkPHP CURD方法之limit方法详解
2014/06/18 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
bgsound 背景音乐 的一些常用方法及特殊用法小结
2010/05/11 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
JavaScript实现点击按钮直接打印
2016/01/06 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
JS去掉字符串中所有的逗号
2017/10/18 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
2018/02/03 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
详解用python生成随机数的几种方法
2019/08/04 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
python conda操作方法
2019/09/11 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
python3 sorted 如何实现自定义排序标准
2020/03/12 Python
django实现模型字段动态choice的操作
2020/04/01 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
python 用Matplotlib作图中有多个Y轴
2020/11/28 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
2021/02/06 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
项目合作意向书模板
2014/07/29 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
Nginx搭建rtmp直播服务器实现代码
2021/03/31 Servers
ubuntu开机后ROS程序自启动问题
2022/12/24 Servers