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实现socket端口重定向示例
Feb 10 Python
Python 文件读写操作实例详解
Mar 12 Python
python使用MySQLdb访问mysql数据库的方法
Aug 03 Python
详解字典树Trie结构及其Python代码实现
Jun 03 Python
python如何在终端里面显示一张图片
Aug 17 Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
Python多进程fork()函数详解
Feb 22 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
Python数据可视化:幂律分布实例详解
Dec 07 Python
python编写微信公众号首图思路详解
Dec 13 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
Feb 21 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中的替代语法介绍
2015/01/09 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
node.js中实现同步操作的3种实现方法
2014/12/05 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
基于jQuery实现的扇形定时器附源码下载
2015/10/20 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
详解Js模板引擎(TrimPath)
2016/11/22 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
JavaScript监听触摸事件代码实例
2019/12/30 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
详解Vue中的MVVM原理和实现方法
2020/07/15 Javascript
python中字典dict常用操作方法实例总结
2015/04/04 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
对web.py设置favicon.ico的方法详解
2018/12/04 Python
django如何通过类视图使用装饰器
2019/07/24 Python
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
CSS3制作酷炫的条纹背景
2017/11/09 HTML / CSS
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
Lacoste美国官网:经典POLO衫品牌
2016/10/12 全球购物
JD Sports瑞典:英国领先的运动时尚商店
2018/01/28 全球购物
4s店机修工岗位职责
2013/12/20 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
财务负责人任命书
2014/06/06 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
离婚协议书怎样才有法律效力
2014/10/10 职场文书
小学校长个人总结
2015/03/03 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
MySQL 重写查询语句的三种策略
2021/05/10 MySQL
Vue Element plus使用方法梳理
2022/12/24 Vue.js