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列表与元组详解实例
Nov 01 Python
从零学Python之hello world
May 21 Python
Python线程中对join方法的运用的教程
Apr 09 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
Python pass详细介绍及实例代码
Nov 24 Python
Python搭建HTTP服务器和FTP服务器
Mar 09 Python
浅谈使用Python内置函数getattr实现分发模式
Jan 22 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
python实现趣味图片字符化
Apr 30 Python
Jupyter加载文件的实现方法
Apr 14 Python
python实战之用emoji表情生成文字
May 08 Python
关于Numpy之repeat、tile的用法总结
Jun 02 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
php 判断访客是否为搜索引擎蜘蛛的函数代码
2011/07/29 PHP
curl实现站外采集的方法和技巧
2014/01/31 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
php7基于递归实现删除空文件夹的方法示例
2017/06/15 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
不得不分享的JavaScript常用方法函数集(上)
2015/12/23 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)
2018/08/24 Javascript
推荐15个最好用的JavaScript代码压缩工具
2019/02/13 Javascript
Vue中 axios delete请求参数操作
2020/08/25 Javascript
浅谈Python中数据解析
2015/05/05 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
如何利用python发送邮件
2020/09/26 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
Python 生成短8位唯一id实战教程
2021/01/13 Python
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
事业单位接收函
2014/01/10 职场文书
三查三看党性分析材料
2014/02/18 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
单位接收函格式
2015/01/30 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
2019公司管理制度
2019/04/19 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
asyncio异步编程之Task对象详解
2022/03/13 Python
MySQL主从切换的超详细步骤
2022/06/28 MySQL