J'ai un serveur Linux très basique fonctionnant sur une caméra IP (Busybox). Je voudrais obtenir l'IP publique de cette caméra, qui se trouve derrière un routeur. Il n'a pas « wget » ni « traceroute » et « ping » est tout simplement répondre « vivant » ou « non vivant » ...Obtenir mon IP publique en utilisant netcat
Le seul disponible est un « netcat » de base:
nc
BusyBox v1.1.3 (2009.12.07-16:16+0000) multi-call binary
Usage: nc [OPTIONS] [IP] [port]
Netcat opens a pipe to IP:port
Options:
-l listen mode, for inbound connects
-p PORT local port number
-i SECS delay interval for lines sent
-w SECS timeout for connects and final net reads
-4 Use IPv4 (default)
-6 Use IPv6
-D DSCP set IP DSCP field
-P PRIO set VLAN user-priority
Si mon FAI autorise le HTTP sortant, est-il possible d'utiliser netcat pour obtenir la réponse IP publique d'un site tel que www.obtainip.com ou similaire?
GRAND et beaucoup merci à vous deux, car je ne me sentais pas à l'aise avec nc du tout.
Voici les 2 moyens de travail:
echo "GET /automation/n09230945.asp HTTP/1.0" > http_req2.txt
echo "Host: www.whatismyip.com" >> http_req2.txt
echo "" >> http_req2.txt
echo "" >> http_req2.txt
IP2=$(cat http_req2.txt | nc www.whatismyip.com 80 | tail -n 1)
echo $IP2
YEAH !
et plus étrange, mais ... cela fonctionne aussi:
echo "GET/HTTP/1.0" > http_request.txt
echo "Host: www.whatismyip.com" >> http_request.txt
echo "User-Agent: netcat" >> http_request.txt
echo "Referer: http://www.whatismyip.com/" >> http_request.txt
echo "" >> http_request.txt
echo "" >> http_request.txt
IP=$(cat http_request.txt | nc www.whatismyipaddress.com 80 | tail -n 1)
echo $IP
YEAH again!
EDIT Bien sûr, cela peut être scénarisé mieux comme suggéré:
echo -e "GET /automation/n09230945.asp HTTP/1.0\n"Host: www.whatismyip.com\n\n" | nc www.whatismyipaddress.com 80 | tail -n 1
Installez wget ou curl ou ...? –
hum Je ne peux pas installer wget ou curl sinon j'aurais aimé faire ça. – hornetbzz