作为一名网络工程师经常会遇到互联网出口NAT设备割接,设备上存在大量的DNAT配置,难以验证割接后的网络连通性,多么希望有个工具可以批量测试所有公网端口........

下面分享一个简单的DOS脚本,用于windows下批量测试TCP端口连通性。

前提条件:

1.Windows安装Tcping工具,这个网上有很多教程。

2.准备一个txt文件,内容格式为:地址/域名 端口,例如:

www.baidu.com 80

114.114.114.114 80

脚本内容:

@echo off

chcp 65001

for /f  "tokens=1-2 delims= " %%a in (D:\ip.txt) do tcping -n 2 %%a %%b>nul&&echo %%a %%b  通 >> D:\print.txt  || echo %%a %%b 不通  >> D:\print.txt

pause

将脚本复制到txt文本中保存,修改后缀名为bat文件。创建好ip.txt文件和print.txt文件,执行bat脚本后打开print文件,结果如下:

【脚本】Windows批量验证TCP端口连通性_连通性


注释:

chcp 65001 //​UTF-8代码页,防止有中文回显乱码

通过for /f读取文件中的内容对变量赋值

pause //脚本执行后按任意键继续

参数选项介绍:

​"delims=​"这个用来指定分割符号,用于分割文本中的数据,如上文前提条件中的举例,在IP地址和端口号之间增了一个空格,此处脚本中delims=空格,用于拆分IP地址和端口。

"tokens="这个用来提取文件中通过delims分割后的值,例如“114.114.114.114 80”,delims指定的分割符号为空格,此时我们只需要两个值则tokens的取值为1-2。将取到的第一个值赋予%%a,第二个值赋予%%b。

取值后执行tcping命令,-n表示指定ping2个包。

>nul表示将tcping的回显结果删除

&&echo %%a %%b  通 >> D:\print.txt  || echo %%a %%b 不通  >> D:\print.txt表示将tcping执行的结果追加到指定文件