2020年12月11日 星期五

bash 尋找可用的port

 #!sh

j=10240

f(){ for i in $(netstat -an|grep TCP|awk '{print $2 }'|uniq|awk -F : '{print $2 }'|sort -n);do [ $1 -lt $i ]&&break;[ $1 -eq $i ]&&echo found&&break; done; };
p(){ for i in $(seq $1 65535);do [ -z "$(f $i)" ]&& echo $i && return 0;done;echo 0;return 1; };
ncvzn(){ r=$(echo|timeout ${3:-3} nc $1 $2 2>/dev/null);r0=$?;echo $r;return $r0;};

for i in p1 p2;do eval "$i=\$(p \$j);j=\$(expr \$$i + 1)";done;
echo $p1 $p2

沒有留言: