pingip:用ping扫描网段

2021年2月2日 / 37次阅读 / Last Modified 2021年2月2日
开源项目

做了个小工具,pingip,用ping扫描网段,将所有回复ping的host ip列出来。

地址:https://github.com/xinlin-z/pingip

使用很简单,有两个模式:(1)网段模式;(2)接口模式。

网段模式

输入 ip/mask 网段,然后ping范围内所有地址,除了网段地址和广播地址。

$ python3 pingip.py --net 192.168.1.198/24 -w 200 -c 4 -t 2
192.168.1.1      4/4
192.168.1.121    4/4
192.168.1.123    4/4
192.168.1.198    4/4
192.168.1.199    4/4
IP Number: 5
  • -w:指定ping worker的数量,默认值由Python确定;
  • -c:设置对每个地址发送ping包的数量,默认2;
  • -t:设置ping包等待timeot,默认1秒;

接口模式

通过pingip提供的界面,选择一个本地接口,此本地接口自带一个 ip/mask 对,用词信息开始ping scan:

$ python3 pingip.py --local -w 200
Index    Interface,IP,Mask
  0      ('lo', '127.0.0.1', '8')
  1      ('enp3s0', '192.168.1.198', '24')
--> Choose a local port index: 1
192.168.1.1      2/2
192.168.1.121    2/2
192.168.1.123    2/2
192.168.1.198    2/2
192.168.1.199    2/2
IP Number: 5

注意:pignip工具没有对loopback和linklocal做任何特别处理,pingip暂时不知道ipv6地址。

给一个ping公网ip的case

注意控制 mask 值,如果ip地址段太大,pingip很久都停不下来!

$ python3 pingip.py --net 36.1.36.1/24 -w 500
36.1.36.119      2/2
36.1.36.17       2/2
36.1.36.153      2/2
36.1.36.41       2/2
36.1.36.72       1/2
36.1.36.63       2/2
36.1.36.105      2/2
36.1.36.141      2/2
36.1.36.154      2/2
36.1.36.145      2/2
36.1.36.167      2/2
36.1.36.160      2/2
36.1.36.190      2/2
36.1.36.224      2/2
36.1.36.228      2/2
36.1.36.122      1/2
IP Number: 16

有了pingip工具,可以很方便的统计家里有多少终端,也可以很容易找到打印机的ip地址了。

-- EOF --

本文链接:https://www.pynote.net/archives/3425

留言区

您的电子邮箱地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top