C# 遍历IP段检查端口是否打开

起因是项目中用到打印机,但是无法为打印机分配固定IP.所以每次开机后都要浪费纸张打印IP信息.最后没纸了, 密密麻麻看不到IP地址. 所以萌生了这个念头,通过ping ip查出此打印机的IP.

最开始用bat执行255个ping命令.但是发现ip通了端口不一定打开. 所以改成了 telnet ip port检查.

FOR /L %%i IN (1,1,255) Do ping 10.231.133.%%i -n 1 -w 300 | Find "TTL" && telnet 10.231.133.%%i 6101 && echo off

 

通过循环1-255的ip 去ping 每一个ip, -w 300表示超时时间, 因为ping不通的ip比较久.

然后获取结果是否存在TTL,存在表示ping通了.然后就使用telnet去检查端口是否打开。 实际上已经达到效果了.

但是对于端口未打开的ip, 每次都要检查5-10秒. 这就导致了255个IP里有个50个左右可以ping通. 但是这50个里有49个端口没打开. 用时较久,5-10分钟.

所以最后还是决定自己写个程序, 自己控制检查时间,因为telnet 1秒还没结果基本已经可以确定端口没开了.

效果图如下:

源码地址: 链接: https://pan.baidu.com/s/1UdRUrBidPilrQx-VWf2B0Q 提取码: rn4b 

原文地址:https://www.cnblogs.com/cskk/p/11465426.html