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获取Linux系统的各种信息
Jul 10 Python
Python爬虫抓取手机APP的传输数据
Jan 22 Python
Python与R语言的简要对比
Nov 14 Python
tornado 多进程模式解析
Jan 15 Python
Anaconda入门使用总结
Apr 05 Python
使用Rasterio读取栅格数据的实例讲解
Nov 26 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
Mar 06 Python
python3 配置logging日志类的操作
Apr 08 Python
如何利用Python识别图片中的文字
May 31 Python
keras和tensorflow使用fit_generator 批次训练操作
Jul 03 Python
python 绘制场景热力图的示例
Sep 23 Python
Python Selenium操作Cookie的实例方法
Feb 28 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 引用(&)详解
2009/11/20 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
Laravel 5框架学习之模型、控制器、视图基础流程
2015/04/08 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
javascript编程起步(第三课)
2007/02/27 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
JavaScript中创建原子的方法总结
2018/08/26 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
python数组复制拷贝的实现方法
2015/06/09 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
python可视化实现代码
2019/01/15 Python
Python3 main函数使用sys.argv传入多个参数的实现
2019/12/25 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
ZWILLING双立人法国网上商店:德国刀具锅具厨具品牌
2019/08/28 全球购物
金山毒霸系列的笔试题
2013/04/13 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
测控技术与仪器个人求职信范文
2013/12/30 职场文书
出生医学证明样本
2014/01/17 职场文书
2014年重阳节活动策划方案书
2014/09/16 职场文书
简单租房协议书
2014/10/21 职场文书
2014年组织部工作总结
2014/11/14 职场文书
会议欢迎词
2015/01/23 职场文书
少年雷锋观后感
2015/06/10 职场文书
贴吧吧主申请感言
2015/08/03 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js