サーバーへの接続を確認するためにncを使用します。
echo -e -n "" | nc 192.168.15.200 8080
そして、サーバーに接続するためにncが使用する送信元IPアドレスを知りたいです。
ncコマンドで送信元IPアドレスを抽出できない場合、サーバーへの接続で使用されている送信元IPアドレスを取得する他の方法はありますか?
次のスクリプトは、宛先への接続でncが使用する送信元IPアドレスを取得します。
#!/bin/sh
dest=192.168.15.200 # You can put an ip address or a name address
port=8080
isIP=`echo "$dest"|grep -v -e [a-zA-Z]`
echo -e -n "" | nc $dest $port
if [ "_$isIP" != "_" ];then
ip=`netstat -t -n|grep $dest:$port|sed 's/ \+/ /g'|cut -f4 -d " "|cut -f1 -d:`
else
for addr in `nslookup $dest|grep -v \#|grep Address|cut -f2 -d:|sed 's/\ //g'`;do
ip=`netstat -t -n|grep $addr:$port|sed 's/ \+/ /g'|cut -f4 -d " "|cut -f1 -d:`
if [ "_$ip" != "_" ];then
break
fi
done
fi
echo $ip