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解析xml成对应的html示例分享
Apr 02 Python
17个Python小技巧分享
Jan 23 Python
详解Python中内置的NotImplemented类型的用法
Mar 31 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
Python3中在Anaconda环境下安装basemap包
Oct 21 Python
Python常见数据类型转换操作示例
May 08 Python
python的内存管理和垃圾回收机制详解
May 18 Python
python覆盖写入,追加写入的实例
Jun 26 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
Python基础之字典常见操作经典实例详解
Feb 26 Python
Python脚本导出为exe程序的方法
Mar 25 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 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 定界符格式引起的错误
2011/05/24 PHP
php网页标题中文乱码的有效解决方法
2014/03/05 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
让textarea自动调整大小的js代码
2011/04/12 Javascript
解析js原生方法创建表格效率测试
2013/07/08 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
js数组去重的5种算法实现
2015/11/04 Javascript
详解Document.Cookie
2015/12/25 Javascript
javascript HTML5 Canvas实现圆盘抽奖功能
2016/04/11 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
详解jQuery中的事件
2016/12/14 Javascript
bootstrap滚动监控器使用方法解析
2017/01/13 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
[01:20:30]OG vs LGD 2018国际邀请赛淘汰赛BO3 第四场 8.26
2018/08/30 DOTA
从零学Python之入门(二)基本数据类型
2014/05/25 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
在Mac OS系统上安装Python的Pillow库的教程
2015/11/20 Python
python opencv设置摄像头分辨率以及各个参数的方法
2018/04/02 Python
利用Tensorflow的队列多线程读取数据方式
2020/02/05 Python
python多维数组分位数的求取方式
2020/03/03 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
Keras官方中文文档:性能评估Metrices详解
2020/06/15 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
房地产开盘策划方案
2014/02/10 职场文书
管理失职检讨书
2014/02/12 职场文书
需求分析说明书
2014/05/09 职场文书
工厂标语大全
2014/10/06 职场文书
大学生自荐书范文
2015/03/05 职场文书
2015年预算员工作总结
2015/05/14 职场文书
借钱欠条怎么写
2015/07/03 职场文书