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使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
详解MySQL数据类型int(M)中M的含义
Nov 20 Python
python使用matplotlib绘制柱状图教程
Feb 08 Python
python中利用Future对象异步返回结果示例代码
Sep 07 Python
Python中optparser库用法实例详解
Jan 26 Python
python 删除非空文件夹的实例
Apr 26 Python
Python实现获取本地及远程图片大小的方法示例
Jul 21 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
解决Python2.7中IDLE启动没有反应的问题
Nov 30 Python
Python骚操作之动态定义函数
Mar 26 Python
python-OpenCV 实现将数组转换成灰度图和彩图
Jan 09 Python
python爬虫实现获取下一页代码
Mar 13 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脚本的10个技巧(1)
2006/10/09 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
基于vue2.0+vuex+localStorage开发的本地记事本示例
2017/02/28 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
jQuery导航条固定定位效果实例代码
2017/05/26 jQuery
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
基于vue.js实现购物车
2020/01/15 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
python教程之用py2exe将PY文件转成EXE文件
2014/06/12 Python
简述Python中的进程、线程、协程
2016/03/18 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
python统计指定目录内文件的代码行数
2019/09/19 Python
python hashlib加密实现代码
2019/10/17 Python
利用pandas将非数值数据转换成数值的方式
2019/12/18 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
细说CSS3中的选择符
2008/10/17 HTML / CSS
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
美国亚马逊旗下时尚女装网店:SHOPBOP(支持中文)
2020/10/17 全球购物
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
生日宴会策划方案
2014/06/03 职场文书
升职感谢信
2015/01/22 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
Python基础之常用库常用方法整理
2021/04/30 Python