有没有什么办法,使用基本的 Unix 命令,找到下一个未使用的端口号,从端口 4444 开始向上?我通过 ssh(通过 openssh)进入 Windows XP 计算机,运行 Cygwin 工具并使用 bash shell。
谢谢,-戴夫
尝试这个:
for port in $(seq 4444 65000); do echo -ne "\035" | telnet 127.0.0.1 $port > /dev/null 2>&1; [ $? -eq 1 ] && echo "unused $port" && break; done
where
seq 4444 65000 - port range for check
echo -ne "\035" - escape character to force close telnet session (^])
如果 telnet 以退出代码 1 结束,则表示连接被拒绝:
$ telnet 127.0.0.1 4444
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
$ echo $?
1
否则我们判定连接成功,退出代码为 0。
EDIT:cygwin专用:需要安装额外的包inetutils
即包含 telnet 端口并使用脚本如下:
for port in $(seq 4444 65000); do echo -ne "\035" | /usr/bin/telnet 127.0.0.1 $port > /dev/null 2>&1; [ $? -eq 1 ] && echo "unused $port" && break; done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)