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判断端口是否打开的实现代码
Feb 10 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
使用python存储网页上的图片实例
May 22 Python
python基于C/S模式实现聊天室功能
Jan 09 Python
对Python 简单串口收发GUI界面的实例详解
Jun 12 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
python中的global关键字的使用方法
Aug 20 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
win10下python3.8的PIL库安装过程
Jun 08 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 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的安全
2006/10/09 PHP
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
mui 打开新窗口的方式总结及注意事项
2017/08/20 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
[55:44]完美世界DOTA2联赛决赛 FTD vs Phoenix 第二场 11.08
2020/11/11 DOTA
Python函数中的函数(闭包)用法实例
2016/03/15 Python
Python实现的径向基(RBF)神经网络示例
2018/02/06 Python
Python Django2.0集成Celery4.1教程
2019/11/19 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
Anaconda+VSCode配置tensorflow开发环境的教程详解
2020/03/30 Python
python从PDF中提取数据的示例
2020/10/30 Python
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
大学生的创业计划书就该这么写
2014/01/30 职场文书
致全体运动员广播稿
2014/02/01 职场文书
小学生优秀评语大全
2014/04/22 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
分家协议书范本
2016/03/22 职场文书
导游词之日本富士山
2020/01/06 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis
Nginx源码编译安装过程记录
2021/11/17 Servers
pytorch分类模型绘制混淆矩阵以及可视化详解
2022/04/07 Python