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记录详细调用堆栈日志的方法
May 05 Python
python获取当前时间对应unix时间戳的方法
May 15 Python
剖析Python的Tornado框架中session支持的实现代码
Aug 21 Python
python中执行shell的两种方法总结
Jan 10 Python
python绘制双柱形图代码实例
Dec 14 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
Jul 01 Python
Python函数的默认参数设计示例详解
Dec 01 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
Jul 01 Python
pytorch中的torch.nn.Conv2d()函数图文详解
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生成高清缩略图实例详解
2015/12/07 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
php生成与读取excel文件
2016/10/14 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
浅谈vuex中store的命名空间
2019/11/08 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python基于有道实现英汉字典功能
2015/07/25 Python
python 上下文管理器使用方法小结
2017/10/10 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
利用python循环创建多个文件的方法
2018/10/25 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
学前班教师的自我鉴定
2013/12/05 职场文书
高二英语教学反思
2014/01/19 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
党员廉洁自律个人总结
2015/02/13 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
外出培训学习心得体会
2016/01/18 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
python标准库ElementTree处理xml
2022/05/20 Python