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算法学习之计数排序实例
Dec 18 Python
python实现百度关键词排名查询
Mar 30 Python
python通过scapy获取局域网所有主机mac地址示例
May 04 Python
python执行等待程序直到第二天零点的方法
Apr 23 Python
Python----数据预处理代码实例
Mar 20 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
python 实现的发送邮件模板【普通邮件、带附件、带图片邮件】
Jul 06 Python
python tkinter组件摆放方式详解
Sep 16 Python
python框架django项目部署相关知识详解
Nov 04 Python
pycharm中选中一个单词替换所有重复单词的实现方法
Nov 17 Python
matplotlib grid()设置网格线外观的实现
Feb 22 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 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
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
2019/04/15 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
详解AngularJS实现表单验证
2015/12/10 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
2016/12/20 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
javascript使用链接跨域下载图片
2019/11/01 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
Python中的异常处理简明介绍
2015/04/13 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
用Python逐行分析文件方法
2019/01/28 Python
python 类之间的参数传递方式
2019/12/20 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
基于Tensorflow:CPU性能分析
2020/02/10 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
Python使用matplotlib绘制圆形代码实例
2020/05/27 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
培训主管岗位职责
2014/02/01 职场文书
反邪教观后感
2015/06/11 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
新人入职感言
2015/07/31 职场文书
javascript数组includes、reduce的基本使用
2021/07/02 Javascript