批量Ping多个连续的IP地址
如果你是公司的网络管理员,现在你想知道172.16.20.0/24这个网段有多少主机在线(已被占用),有两种方法:
第一,登录DHCP服务器(例如核心交换机)查看实时的IP地址分配情况;
第二,使用批量Ping扫描有多少IP在线。
其中,第一种方法需要你有能登录核心设备的权限。
全网段扫描
使用命令for /L %d in (1,1,255) do ping 172.16.20.%d
C:UsersLiyang Tong>for /L %d in (1,1,255) do ping 172.16.20.%dC:UsersLiyang Tong>ping 172.16.20.1正在 Ping 172.16.20.1 具有 32 字节的数据:来自 172.16.20.1 的回复: 字节=32 时间=1ms TTL=255来自 172.16.20.1 的回复: 字节=32 时间=1ms TTL=255来自 172.16.20.1 的回复: 字节=32 时间=1ms TTL=255来自 172.16.20.1 的回复: 字节=32 时间=1ms TTL=255172.16.20.1 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位):最短 = 1ms,最长 = 1ms,平均 = 1ms C:UsersLiyang Tong>ping 172.16.20.2正在 Ping 172.16.20.2 具有 32 字节的数据:来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。172.16.20.2 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), C:UsersLiyang Tong>ping 172.16.20.3正在 Ping 172.16.20.3 具有 32 字节的数据:来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。172.16.20.3 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), C:UsersLiyang Tong>ping 172.16.20.4正在 Ping 172.16.20.4 具有 32 字节的数据:……
对172.16.20.0/24这个网段,从1开始连续逐个Ping测试。其中%d表示变量,(1,1,255)中第一个1表示起始值,第二个1表示递增量,255表示结束的最后一个值。
指定范围扫描
下面将起始值修改成20、递增量修改成10,使用命令for /L %d in (20,10,255) do ping 172.16.20.%d试一下。
C:UsersLiyang Tong>for /L %d in (20,10,255) do ping 172.16.20.%dC:UsersLiyang Tong>ping 172.16.20.20正在 Ping 172.16.20.20 具有 32 字节的数据:来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。172.16.20.20 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), C:UsersLiyang Tong>ping 172.16.20.30正在 Ping 172.16.20.30 具有 32 字节的数据:来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。来自 172.16.20.16 的回复: 无法访问目标主机。172.16.20.30 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失), C:UsersLiyang Tong>ping 172.16.20.40正在 Ping 172.16.20.40 具有 32 字节的数据:来自 172.16.20.16 的回复: 无法访问目标主机。……
如预期所示,从172.16.20.20开始,并以10递增进行Ping测试。
自动导出扫描结果
添加参数>>textname.txt,使用命令for /L %d in (5,3,200) do ping 172.16.20.%d >>D:ping.txt,将结果输出到名为ping.txt的文件中。
C:UsersLiyang Tong>for /L %d in (5,3,200) do ping 172.16.20.%d >>D:ping.txtC:UsersLiyang Tong>ping 172.16.20.5 1>>D:ping.txtC:UsersLiyang Tong>ping 172.16.20.8 1>>D:ping.txtC:UsersLiyang Tong>ping 172.16.20.11 1>>D:ping.txtC:UsersLiyang Tong>ping 172.16.20.14 1>>D:ping.txt……
将通与不通的分别导出
再优化一下:将Ping通的IP结果保存到yes.txt,将不能Ping通的IP保存到no.txt,使用命令for /L %d in (10,1,100) do (ping 172.16.20.%d -n 1 && echo 172.16.20.%d >>D:yes.txt || echo 172.16.20.%d >>D:no.txt)
C:UsersLiyang Tong>for /L %d in (10,1,100) do (ping 172.16.20.%d -n 1 && echo 172.16.20.%d >>D:yes.txt || echo 172.16.20.%d >>D:no.txt)C:UsersLiyang Tong>(ping 172.16.20.10 -n 1 && echo 172.16.20.10 1>>D:yes.txt || echo 172.16.20.10 1>>D:no.txt )正在 Ping 172.16.20.10 具有 32 字节的数据:来自 172.16.20.16 的回复: 无法访问目标主机。172.16.20.10 的 Ping 统计信息:数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失), C:UsersLiyang Tong>(ping 172.16.20.11 -n 1 && echo 172.16.20.11 1>>D:yes.txt || echo 172.16.20.11 1>>D:no.txt )正在 Ping 172.16.20.11 具有 32 字节的数据:请求超时。172.16.20.11 的 Ping 统计信息:数据包: 已发送 = 1,已接收 = 0,丢失 = 1 (100% 丢失), C:UsersLiyang Tong>(ping 172.16.20.12 -n 1 && echo 172.16.20.12 1>>D:yes.txt || echo 172.16.20.12 1>>D:no.txt )正在 Ping 172.16.20.12 具有 32 字节的数据:来自 172.16.20.12 的回复: 字节=32 时间=101ms TTL=64……
批量Ping多个无规律的IP地址
上面演示的是Ping多个连续的IP地址段,那么如果是一组没有规律的地址呢?例如下面这个example.txt中这些IP地址/网址,肯定也是可以实现的。
8.8.8.88.112.5.5111.222.333.41.2.3.45.6.7.89.10.11.12101.102.103.104223.5.5.5114.115.116.117172.16.20.1
使用命令for /F %d in (D:example.txt) do (ping %d -n 1 && echo %d >> D:pass.txt || echo %d >> D:nopass.txt)
C:UsersLiyang Tong>for /F %d in (D:example.txt) do (ping %d -n 1 && echo %d >> D:pass.txt || echo %d >> D:nopass.txt)C:UsersLiyang Tong>(ping 8.8.8.8 -n 1 && echo 8.8.8.8 1>>D:pass.txt || echo 8.8.8.8 1>>D:nopass.txt )正在 Ping 8.8.8.8 具有 32 字节的数据:来自 8.8.8.8 的回复: 字节=32 时间=36ms TTL=518.8.8.8 的 Ping 统计信息:数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失),往返行程的估计时间(以毫秒为单位):最短 = 36ms,最长 = 36ms,平均 = 36ms C:UsersLiyang Tong>(ping 8.112.5.5 -n 1 && echo 8.112.5.5 1>>D:pass.txt || echo 8.112.5.5 1>>D:nopass.txt )正在 Ping 8.112.5.5 具有 32 字节的数据:请求超时。8.112.5.5 的 Ping 统计信息:数据包: 已发送 = 1,已接收 = 0,丢失 = 1 (100% 丢失), C:UsersLiyang Tong>(ping 111.222.333.4 -n 1 && echo 111.222.333.4 1>>D:pass.txt || echo 111.222.333.4 1>>D:nopass.txt )Ping 请求找不到主机 111.222.333.4。请检查该名称,然后重试。 C:UsersLiyang Tong>(ping 1.2.3.4 -n 1 && echo 1.2.3.4 1>>D:pass.txt || echo 1.2.3.4 1>>D:nopass.txt )正在 Ping 1.2.3.4 具有 32 字节的数据:……
哪些原因会导致Ping不通
在互联网中,理论上接入Internet的两台机器都可以通信。但是由于安全策略的原因、防火墙的限制,将导致一些流量被过滤。下面介绍几种Ping不通的现象,以及相应的原因分析。
错误的目标IP地址/网址:
对www.qdfdfdf345454.com发起Ping
C:UsersLiyang Tong>ping www.qdfdfdf345454.comPing 请求找不到主机 www.qdfdfdf345454.com。请检查该名称,然后重试。
回显Ping请求找不到主机 www.qdfdfdf345454.com。请检查该名称,然后重试。
使用nslooup命令查找解析
C:UsersLiyang Tong>nslookup默认服务器: public1.alidns.comAddress: 223.5.5.5> www.qdfdfdf345454.com服务器: public1.alidns.comAddress: 223.5.5.5*** public1.alidns.com 找不到 www.qdfdfdf345454.com: Non-existent domain
提示UnKnown 找不到 www.qdfdfdf345454.com: Non-existent domain
访问违禁目标网站被拒绝:
以在中国大陆访问Twitter为例,DNS将对www.twitter.com的访问解析到108.160.172.232
C:UsersLiyang Tong>ping www.twitter.com正在 Ping www.twitter.com [108.160.172.232] 具有 32 字节的数据:请求超时。请求超时。请求超时。请求超时。108.160.172.232 的 Ping 统计信息:数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失)
这种机制是通过DNS劫持将域名解析到错误的IP地址所导致的。
目标IP/网站设置了禁Ping:
这种场景是由于目标IP/网站在服务器之前使用了防火墙/CDN过滤技术,将来自于ICMP的请求一律回显拒绝消息。例如有着韩国百度之称的“Naver”,就是能访问网页,但是Ping不通。
扩展阅读
以下图拓扑为例介绍如何设置防火墙禁Ping,其中PC1和路由器R1只配置了IP地址,关键配置做在核心交换机LSW1上。
下面是配置策略前的Ping测试,PC1可以Ping通R1。
PC1>ping 10.0.111.254Ping 10.0.111.254: 32 data bytes, Press Ctrl_C to breakFrom 10.0.111.254: bytes=32 seq=1 ttl=255 time=47 msFrom 10.0.111.254: bytes=32 seq=2 ttl=255 time=47 msFrom 10.0.111.254: bytes=32 seq=3 ttl=255 time=47 msFrom 10.0.111.254: bytes=32 seq=4 ttl=255 time=47 msFrom 10.0.111.254: bytes=32 seq=5 ttl=255 time=46 ms--- 10.0.111.254 ping statistics ---5 packet(s) transmitted5 packet(s) received0.00% packet lossround-trip min/avg/max = 46/46/47 ms
在交换机LSW1上创建ICMP流量过滤策略,关键配置如下:
[Huawei]acl number 3100[Huawei-acl-adv-3100]rule deny icmp[Huawei-acl-adv-3100]quit//匹配感兴趣流[Huawei]traffic classifier 1 operator and[Huawei-classifier-1]if-match acl 3100[Huawei-classifier-1]quit//配置流分类[Huawei]traffic behavior deny[Huawei-behavior-deny]permit[Huawei-behavior-deny]quit//配置流行为[Huawei]traffic policy icmp[Huawei-trafficpolicy-icmp]classifier 1 behavior deny[Huawei-trafficpolicy-icmp]quit//配置流策略,关联流分类与流行为[Huawei]interface GigabitEthernet 0/0/1[Huawei-GigabitEthernet0/0/1]traffic-policy icmp inbound[Huawei-GigabitEthernet0/0/1]quit//接口下调用策略
下面是配置策略后再次Ping测试,PC1无法Ping通R1了。
PC>ping 10.0.111.254Ping 10.0.111.254: 32 data bytes, Press Ctrl_C to breakRequest timeout!Request timeout!Request timeout!Request timeout!Request timeout!--- 10.0.111.254 ping statistics ---5 packet(s) transmitted0 packet(s) received100.00% packet loss



