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中的URLError异常的方法
Apr 30 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
python实现各进制转换的总结大全
Jun 18 Python
python matlibplot绘制3D图形
Jul 02 Python
python创建文件时去掉非法字符的方法
Oct 31 Python
python async with和async for的使用
Jun 20 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
python 数据提取及拆分的实现代码
Aug 26 Python
pygame库实现俄罗斯方块小游戏
Oct 29 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
python入门教程之基本算术运算符
Nov 13 Python
python工具快速为音视频自动生成字幕(使用说明)
Jan 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中date与gmdate的区别及默认时区设置
2014/05/12 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
PHP7变量处理机制修改
2021/03/09 PHP
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
jQuery构造函数init参数分析
2015/05/13 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
JavaScript 数据类型详解
2017/03/13 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
微信小程序swiper组件用法实例分析【附源码下载】
2017/12/07 Javascript
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
vuex入门最详细整理
2020/03/04 Javascript
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
Python兔子毒药问题实例分析
2015/03/05 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
python对html过滤处理的方法
2018/10/21 Python
计算机二级python学习教程(2) python语言基本语法元素
2019/05/16 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python图片指定区域替换img.paste函数的使用
2020/04/09 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
如何使用css3实现一个类在线直播的队列动画的示例代码
2020/06/17 HTML / CSS
旧时光糖果:Old Time Candy
2018/02/05 全球购物
我的珠宝盒:Ma boîte à bijoux
2019/08/27 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
土木建筑学生自我评价
2014/01/14 职场文书
安全生产汇报材料
2014/02/17 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
库房管理员岗位职责
2014/03/09 职场文书
小学生操行评语大全
2014/04/22 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
网络销售员岗位职责
2015/04/11 职场文书
导游词之广东佛山(南风古灶)
2019/09/24 职场文书
SQLServer2008提示评估期已过解决方案
2021/04/12 SQL Server