Podobne do wyszukiwania http://whatismyip.com . Oczywiście musiałby wysłać zapytanie do komputera. Zastanawiam się, czy ktoś miał sprytny sposób na zrobienie tego?
Podobne do wyszukiwania http://whatismyip.com . Oczywiście musiałby wysłać zapytanie do komputera. Zastanawiam się, czy ktoś miał sprytny sposób na zrobienie tego?
Odpowiedzi:
curl http://myip.dnsomatic.com
dig + short myip.opendns.com
Działa to tylko wtedy, gdy używasz OpenDNS jako serwera dns.
Jeśli nie, jeden z nich powinien działać:
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
(Dla czytelności)
STUN jest właściwym rozwiązaniem.
% ogłuszenie -v stun.ekiga.net ... MappedAddress = 88.189.152.187:18009
lynx -dump http://www.pcmesh.com/ip-check.cgi | awk '/REMOTE_ADDR/{print $2}'
po prostu uruchamiam traceroute gdzieś w Internecie i szukam przeskoku z naszej sieci lokalnej.
może jest lepszy sposób?
„lynx http://whatismyip.com ”
najprostszym sposobem jest: curl ifconfig.me
możesz użyć polecenia ifconfig, aby wyświetlić listę wszystkich interfejsów i powiązanych z nimi adresów IP.
więc jeśli wiesz, że twój interfejs internetowy to ppp0, możesz uruchomić
$ ifconfig ppp0 ppp0 Link encap: Protokół Point-to-Point adres inet: XXXX.X PtP: RRRR Maska: 255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU: 1444 Metryczny: 1 Pakiety RX: 198986 błędy: 0 usunięte: 0 przekroczeń: 0 ramka: 0 Pakiety TX: 122929 błędów: 0 odrzuconych: 0 przekroczeń: 0 nośnych: 0 kolizje: 0 txqueuelen: 3 Bajty RX: 134195571 (127,9 MiB) Bajty TX: 17101701 (16,3 MiB)
XXXX będzie Twoim adresem IP. RRRR to adres IP następnego przeskoku.
następnie możesz przetworzyć dane wyjściowe ifconfig za pomocą grep / awk / sed / cut / perl / cokolwiek, aby wyodrębnić tylko adres IP.
inną alternatywą, jeśli masz zainstalowane narzędzia iproute, jest użycie polecenia ip. na przykład
$ ip lista adresów ppp0 21842: ppp0: mtu 1444 qdisc stan htb NIEZNANY qlen 3 link / ppp inet XXXX peer RRRR / 32 zakres globalny ppp0
jest to prawdopodobnie łatwiejsze do odczytania i na pewno łatwiejsze do przeanalizowania:
$ ip lista adresów ppp0 | awk '/ inet / {print $ 2}' XXXX