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 实现归并排序算法
Jun 05 Python
python装饰器decorator介绍
Nov 21 Python
使用Python压缩和解压缩zip文件的教程
May 06 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
Python3 venv搭建轻量级虚拟环境的步骤(图文)
Aug 09 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
你需要学会的8个Python列表技巧
Jun 24 Python
基于Python的图像阈值化分割(迭代法)
Nov 20 Python
Django如何重置migration的几种情景
Feb 24 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
mysql5详细安装教程
2007/01/15 PHP
php教程之魔术方法的使用示例(php魔术函数)
2014/02/12 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
javascript的事件描述
2006/09/08 Javascript
javascript编程起步(第四课)
2007/01/10 Javascript
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
jQuery 浮动广告实现代码
2008/12/25 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
《JavaScript高级编程》学习笔记之object和array引用类型
2015/11/01 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
Javascript+CSS3实现进度条效果
2016/10/28 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
JS获取浮动(float)元素的style.left值为空的快速解决办法
2017/02/19 Javascript
JS中type="button"和type="submit"的区别
2017/07/04 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
下载糗事百科的内容_python版
2008/12/07 Python
Python实现遍历数据库并获取key的值
2015/05/17 Python
微信跳一跳python辅助软件思路及图像识别源码解析
2018/01/04 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
python将回车作为输入内容的实例
2018/06/23 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
python实现电子书翻页小程序
2019/07/23 Python
python自动发微信监控报警
2019/09/06 Python
利用python 读写csv文件
2020/09/10 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
导游词之上饶龟峰
2019/10/25 职场文书
python常见的占位符总结及用法
2021/07/02 Python