2012-05-17 3 views
1

я использую пс для того, чтобы проверить возможность подключения к моему серверу:Как узнать адрес IP-адрес источника, используемый нк для подключения к месту назначения

echo -e -n "" | nc 192.168.15.200 8080 

И я хочу знать адрес IP-адрес источника, используемый нк для подключения к серверу.

Если невозможно получить исходный IP-адрес с помощью команды nc, существует ли другая альтернатива для получения исходного ip-адреса ddress, используемого при подключении к моему серверу?

ответ

1

Следующий сценарий получает исходный IP-адрес, используемый nc в соединении с вашим пунктом назначения.

#!/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 
+0

отличный ответ, спасибо – MOHAMED

+0

вы также можете указать, какой адрес источника использовать с флагом -s – GeoSword

Смежные вопросы