Python实现扫描局域网活动ip(扫描在线电脑)
admin
2023-07-31 02:23:41
0

内网的主机都是自动分配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 

就这样。

相关内容

热门资讯

500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
python绘图库Matplo... 本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是pyt...
Prometheus+Graf... 一,Prometheus概述 1,什么是Prometheus?Prometheus是最初在Sound...