154 windows cmd tcp batch-file
我需要一个可以检查远程主机上的端口状态的命令行.我试过ping xxx.xxx.xxx.xxx:161但它不承认"主持人".我认为这是一个"好"的答案,直到我对一个我知道该端口打开的主机执行相同的命令.这是针对Windows上的批处理文件,它将检查远程端口的状态,然后运行使用该远程端口获取信息的命令,然后再使用远程端口检查命令,然后使用下一个服务器上的该端口获取信息的命令, 等等.我到处都看,并认为ping可能会这样做,但必须有各种版本的ping,我想因为我正在这样做的服务器没有显示该选项.
只是为了笑,我尝试从网站上进行基于Web的远程端口检查 - 结果对于"问题"服务器和正确的服务器都是正确的.但是,我不能在批量运行中使用它,其中包含500多个服务器IP.
有什么我可以做的很简单吗?我的Perl技能非常生疏(使用它或丢失它),除了批处理之外不知道任何其他基于Windows的语言.Unix是我的技能,但必须从Widows Server 2003执行.
Gle*_*enn 144
您似乎正在寻找端口扫描程序,例如nmap或netcat,这两种扫描程序都可用于Windows,Linux和Mac OS X.
例如,检查已知ip上的telnet:
nmap -A 192.168.0.5/32 -p 23
Run Code Online (Sandbox Code Playgroud)
例如,在host.example.com上查找20到30的开放端口:
nc -z host.example.com 20-30
Run Code Online (Sandbox Code Playgroud)
小智 122
在命令提示符中,您可以使用命令telnet ..例如,要使用端口80连接到IP 192.168.10.1,
telnet 192.168.10.1 80
Run Code Online (Sandbox Code Playgroud)
要在Windows 7及更高版本中启用telnet,请单击.从链接的文章中,通过控制面板启用telnet - >程序和功能 - > Windows功能 - > telnet客户端,或者只需在管理员提示符中运行:
dism /online /Enable-Feature /FeatureName:TelnetClient
Run Code Online (Sandbox Code Playgroud)
ken*_*orb 27
出于脚本目的,我发现curl命令可以做到,例如:
$ curl -s localhost:80 >/dev/null && echo Connected. || echo Fail.
Connected.
$ curl -s localhost:123 >/dev/null && echo Connected. || echo Fail.
Fail.
Run Code Online (Sandbox Code Playgroud)
可能它不适用于所有服务,因为curl在某些情况下可以返回不同的错误代码(根据评论),因此添加以下条件可以以可靠的方式工作:
[ "$(curl -sm5 localhost:8080 >/dev/null; echo $?)" != 7 ] && echo OK || echo FAIL
Run Code Online (Sandbox Code Playgroud)
注意:添加-m5以将最大连接超时设置为5秒.
如果您还想检查主机是否有效,您还需要检查6退出代码:
$ curl -m5 foo:123; [ $? != 6 -a $? != 7 ] && echo OK || echo FAIL
curl: (6) Could not resolve host: foo
FAIL
Run Code Online (Sandbox Code Playgroud)
要对返回的错误代码进行故障排除,只需运行:curl host:port,例如:
$ curl localhost:80
curl: (7) Failed to connect to localhost port 80: Connection refused
Run Code Online (Sandbox Code Playgroud)
请参阅:man curl获取退出代码的完整列表.
小智 22
按Windows+ R类型cmd和Enter
在命令提示符下键入
telnet "machine name/ip" "port number"
Run Code Online (Sandbox Code Playgroud)
如果端口未打开,将显示以下消息:
"Connecting To "machine name"...Could not open connection to the host, on port "port number":
Run Code Online (Sandbox Code Playgroud)
否则你将进入打开的端口(将显示空屏幕)
min*_*s23 19
使用nc命令,
nc -zv <hostname/ip> <port/port range>
For example,
nc -zv localhost 27017-27019
or
nc -zv localhost 27017
Run Code Online (Sandbox Code Playgroud)
您也可以使用telnet命令
telnet <ip/host> port
Run Code Online (Sandbox Code Playgroud)
我认为您正在寻找 Hping ( http://www.hping.org/ ),它有 Windows 版本。
“该界面受到 ping(8) unix 命令的启发,但 hping 不仅能够发送 ICMP 回显请求。它还支持 TCP、UDP、ICMP...”
如果您想了解 TCP 端口在路由上的哪些位置被阻止(例如被防火墙)而 ICMP 可能未被阻止,那么它也非常有用。