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 相关文章推荐
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
python中argparse模块用法实例详解
Jun 03 Python
Python利用pandas计算多个CSV文件数据值的实例
Apr 19 Python
python opencv实现图片旋转矩形分割
Jul 26 Python
python实现RabbitMQ的消息队列的示例代码
Nov 08 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
Python使用type关键字创建类步骤详解
Jul 23 Python
Python 多线程,threading模块,创建子线程的两种方式示例
Sep 29 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
关于Numpy之repeat、tile的用法总结
Jun 02 Python
python中如何对多变量连续赋值
Jun 03 Python
Python sklearn分类决策树方法详解
Sep 23 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
PHP 变量的定义方法
2010/01/26 PHP
PHP 时间日期操作实战
2011/08/26 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
PHP list() 将数组中的值赋给变量的简单实例
2016/06/13 PHP
golang与PHP输出excel示例
2016/07/22 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
基于jquery的分页控件(C#)
2011/01/06 Javascript
《JavaScript高级程序设计》阅读笔记(一) ECMAScript基础
2012/02/27 Javascript
IE事件对象(The Internet Explorer Event Object)
2012/06/27 Javascript
javascript window.confirm确认 取消对话框实现代码小结
2012/10/21 Javascript
浅析JavaScript中的CSS属性及命名规范
2013/11/28 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
js鼠标点击图片切换效果实现代码
2015/11/19 Javascript
jQuery实现选项卡切换效果简单演示
2015/12/09 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
vue v-model的用法解析
2020/10/19 Javascript
Python返回数组/List长度的实例
2018/06/23 Python
Python中类的创建和实例化操作示例
2019/02/27 Python
python 类之间的参数传递方式
2019/12/20 Python
keras 获取某层的输入/输出 tensor 尺寸操作
2020/06/10 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
世界各地的旅游、观光和活动:Isango!
2019/10/29 全球购物
学子宴答谢词
2014/01/25 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
职工宿舍管理制度
2015/08/05 职场文书