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中字典和JSON互转操作实例
Jan 19 Python
python中Pycharm 输出中文或打印中文乱码现象的解决办法
Jun 16 Python
python实现百度语音识别api
Apr 10 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
python for和else语句趣谈
Jul 02 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
python getopt模块使用实例解析
Dec 18 Python
python使用PIL剪切和拼接图片
Mar 23 Python
python实现与redis交互操作详解
Apr 21 Python
Python装饰器如何实现修复过程解析
Sep 05 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
曾在DC漫画界反派角色扮演的演员,谁才是你心目中的小丑之王?
2020/04/09 欧美动漫
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
2010/03/27 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
javascript 星级评分效果(手写)
2012/12/24 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
BootStrap中
2016/12/10 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
解决iView中时间控件选择的时间总是少一天的问题
2018/03/15 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
node.js微信小程序配置消息推送的实现
2019/02/13 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
《javascript设计模式》学习笔记三:Javascript面向对象程序设计单例模式原理与实现方法分析
2020/04/07 Javascript
easyUI 实现的后台分页与前台显示功能示例
2020/06/01 Javascript
原生JS实现pc端轮播图效果
2020/12/21 Javascript
python基础教程之Hello World!
2014/08/29 Python
Python常用知识点汇总
2016/05/08 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
python对execl 处理操作代码
2020/06/22 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
HTML5视频支持检测(检查浏览器是否支持视频播放)
2013/06/08 HTML / CSS
西班牙高科技产品购物网站:MejorDeseo
2019/09/08 全球购物
介绍一下Linux中的链接
2016/05/28 面试题
机械工程师求职自我评价
2013/09/23 职场文书
自荐信包含哪些内容
2013/10/30 职场文书
外联部演讲稿
2014/05/24 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android