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深入学习之上下文管理器
Aug 31 Python
python实现将pvr格式转换成pvr.ccz的方法
Apr 28 Python
在Python中编写数据库模块的教程
Apr 29 Python
TensorFlow实现简单卷积神经网络
May 24 Python
python实现一个简单的ping工具方法
Jan 31 Python
如何在Django项目中引入静态文件
Jul 26 Python
python解析yaml文件过程详解
Aug 30 Python
python pygame实现挡板弹球游戏
Nov 25 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
10个顶级Python实用库推荐
Mar 04 Python
用Python将GIF动图分解成多张静态图片
Jun 11 Python
python 多态 协议 鸭子类型详解
Nov 27 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管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
PHP切割整数工具类似微信红包金额分配的思路详解
2019/09/18 PHP
基于thinkphp5框架实现微信小程序支付 退款 订单查询 退款查询操作
2020/08/17 PHP
javascript appendChild,innerHTML,join性能比较代码
2009/08/29 Javascript
SWFObject 2.1以上版本语法介绍
2010/07/10 Javascript
JQuery 1.3.2以上版本中出现pareseerror错误的解决方法
2011/01/11 Javascript
JavaScript高级程序设计(第3版)学习笔记9 js函数(下)
2012/10/11 Javascript
jquery分页插件AmSetPager(自写)
2013/04/15 Javascript
为什么要在引入的css或者js文件后面加参数的详细讲解
2013/05/03 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
js实现感应鼠标图片透明度变化的方法
2015/02/20 Javascript
jQuery实现首页图片淡入淡出效果的方法
2015/06/10 Javascript
函数window.open实现关闭所有的子窗口
2015/08/03 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
python使用scrapy发送post请求的坑
2018/09/04 Python
python中eval与int的区别浅析
2019/08/11 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python IDE环境之 新版Pycharm安装详细教程
2020/03/05 Python
如何用python处理excel表格
2020/06/09 Python
Python logging自定义字段输出及打印颜色
2020/11/30 Python
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
商务英语专业毕业生自荐信
2013/11/05 职场文书
自主招生自荐信格式
2013/12/03 职场文书
大学社团活动策划书
2014/01/26 职场文书
中学生民族团结演讲稿
2014/08/27 职场文书
公司合作协议范文
2014/10/01 职场文书
购房协议书范本
2014/10/02 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
JUnit5常用注解的使用
2021/07/02 Java/Android
再谈python_tkinter弹出对话框创建
2022/03/20 Python