Antworten:
curl http://myip.dnsomatic.com
dig + short myip.opendns.com
Dies funktioniert nur, wenn Sie OpenDNS als DNS-Server verwenden.
Wenn Sie dies nicht tun, sollte eine der folgenden Möglichkeiten funktionieren:
dig + short myip.opendns.com @ 208.67.222.222 dig + short myip.opendns.com @ 208.67.220.220 dig + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220
@resolver1.opendns.com
(zur besseren Lesbarkeit)
STUN ist die richtige Lösung.
% stun -v stun.ekiga.net ... MappedAddress = 88.189.152.187:18009
lynx -dump http://www.pcmesh.com/ip-check.cgi | awk '/REMOTE_ADDR/{print $2}'
Sie können curl verwenden, um die Seite von so etwas wie whatismyip abzurufen, und dann die Teile herausholen. Ich habe whatismyipaddress.com in diesem Beispiel verwendet ... offensichtlich unterscheiden sich die Felder bei verschiedenen Diensten.
curl -s http://whatismyipaddress.com/ | grep LOOKUPADDRESS | awk '{ print $4 }'
Ich führe einfach eine Traceroute zu einem beliebigen Ort im Internet aus und suche nach dem Sprung aus unserem lokalen Netzwerk.
Vielleicht gibt es einen besseren Weg?
"lynx http://whatismyip.com "
der einfachste weg ist: curl ifconfig.me
Mit dem Befehl ifconfig können Sie alle Schnittstellen und die zugehörigen IP-Adressen auflisten.
Wenn Sie also wissen, dass Ihre Internetschnittstelle ppp0 ist, können Sie ausführen
$ ifconfig ppp0 ppp0 Link encap: Punkt-zu-Punkt-Protokoll inet addr: XXXX.X PtP: YYYY Mask: 255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1444 Metrisch: 1 Empfangspakete: 198986 Fehler: 0 verworfen: 0 Überläufe: 0 Rahmen: 0 TX-Pakete: 122929 Fehler: 0 verworfen: 0 Überläufe: 0 Träger: 0 Kollisionen: 0 txqueuelen: 3 RX-Bytes: 134195571 (127,9 MiB) TX-Bytes: 17101701 (16,3 MiB)
XXXX ist Ihre IP-Adresse. JJJJ ist die IP-Adresse des nächsten Hops.
Sie können dann die Ausgabe von ifconfig mit grep / awk / sed / cut / perl / whatever nachbearbeiten, um nur die IP zu extrahieren.
Wenn Sie die iproute-Tools installiert haben, können Sie auch den Befehl ip verwenden. z.B
$ ip addr list ppp0 21842: ppp0: mtu 1444 qdisc htb state UNBEKANNT qlen 3 link / ppp inet XXXX peer JJJJ / 32 scope global ppp0
Das ist wahrscheinlich einfacher zu lesen und sicher einfacher zu analysieren:
$ ip addr list ppp0 | awk '/ inet / {print $ 2}' XXXX