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 相关文章推荐
对Python3中的print函数以及与python2的对比分析
May 02 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
python random从集合中随机选择元素的方法
Jan 23 Python
python+numpy按行求一个二维数组的最大值方法
Jul 09 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
Python中logging日志记录到文件及自动分割的操作代码
Aug 05 Python
python+selenium爬取微博热搜存入Mysql的实现方法
Jan 27 Python
Python djanjo之csrf防跨站攻击实验过程
May 14 Python
python flask开发的简单基金查询工具
Jun 02 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 Python
Python 统计序列中元素的出现频度
Apr 26 Python
python神经网络学习 使用Keras进行简单分类
May 04 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临时文件的安全性分析
2014/07/04 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
<script defer> defer 是什么意思
2009/05/10 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
javascript实现完美拖拽效果
2015/05/06 Javascript
jQuery+PHP+MySQL二级联动下拉菜单实例讲解
2015/10/27 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
详解React项目中碰到的IE问题
2019/03/14 Javascript
微信小程序如何使用云开发
2019/05/17 Javascript
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
对python中的argv和argc使用详解
2018/12/15 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
正宗的日本零食和糖果订阅盒:Bokksu
2019/11/21 全球购物
乌克兰机票、铁路和巴士票、酒店搜索、保险:Tickets.ua
2020/01/11 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
附答案的Java面试题
2012/11/19 面试题
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
楼面部长岗位职责范本
2014/02/14 职场文书
党员个人公开承诺书
2014/08/29 职场文书
小学教师求职信范文
2015/03/20 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
高中数学教学反思范文
2016/02/18 职场文书