Jak uzyskać zewnętrzny adres IP z wiersza polecenia systemu Windows i Linux?
W systemie Windows ipconfig pokazuje wewnętrzny adres IP sieci, ale nie pokazuje zewnętrznego.
Jak uzyskać zewnętrzny adres IP z wiersza polecenia systemu Windows i Linux?
W systemie Windows ipconfig pokazuje wewnętrzny adres IP sieci, ale nie pokazuje zewnętrznego.
Odpowiedzi:
Ani Windows, ani Linux nie są świadomi swojego zewnętrznego adresu IP, więc nie mogą natywnie powiadomić Cię o tym. Musisz więc skorzystać z usługi zewnętrznej, aby dowiedzieć się, jaki jest adres IP.
W curl
systemie Linux możesz korzystać z jednej z wielu usług, które informują o tym, jaki jest twój adres:
$ curl ip.alt.io
123.123.123.123
Istnieją równoważne opcje dla systemu Windows, takie jak instalacja curl . Pamiętaj, że sam curl nie determinuje twojego adresu IP, po prostu pyta zewnętrzną stronę internetową, z którego adresu IP wydaje się pochodzić.
Jednak najlepszym sposobem na to jest skorzystanie z usługi dynamicznego DNS (DDNS), takiej jak no-ip.com . Tutaj możesz dynamicznie zarejestrować swój zewnętrzny adres IP w DNS. Zamiast używać adresu IP, możesz użyć adresu domeny, takiego jak myhomeip.no-ip.com
.
Większość routerów krajowych obsługuje automatyczną aktualizację DDNS po zmianie adresu zewnętrznego, a jeśli nie, istnieją klienci dla systemu Windows i Linux (ddclient).
Wyszukiwarka Google „ Jaki jest mój adres IP” działa całkiem dobrze.
Twój publiczny adres IP to ##. ###. ###. 178
Możesz również uzyskać informacje na temat swojej sieci, które pomogą Ci zorientować się, co się dzieje. Korzystając z narzędzi takich jak netstat , traceroute , ssh lub telnet , możesz dowiedzieć się, jak się rozwijasz w sieci uczniowskiej w Internecie.
Istnieje publiczny i prywatny adres IP. Jeśli wiesz, jaki jest prywatny zakres adresów IP, możesz zgadnąć, którego adresu IP używasz w sieci zewnętrznej. Gdy tylko traceroute
kończy się korzystanie z prywatnych zakresów adresów IP, przenosi się do sieci publicznej.
Sieć prywatna (Wikipedia)
10.0.0.0/24
172.16.0.0/20
192.168.0.0/16
Zacznę od znalezienia mojej domyślnej bramy.
W systemie Linux:
netstat -r
W systemie Windows:
netstat / r
Co powinno ci coś pokazać
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
172.16.0.0 * 255.255.255.0 U 0 0 0 eth0
172.16.0.0 * 255.255.255.0 U 0 0 0 wlan0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
link-local * 255.255.0.0 U 0 0 0 eth0
default 172.16.0.2 0.0.0.0 UG 0 0 0 eth0
Zwróć uwagę na domyślną wartość u dołu, która powinna być twoim ostatnim krokiem przed wyjściem do świata publicznego.
Teraz traceroute
do adresu serwera DNS Google, 8.8.8.8, aby zobaczyć, jaką ścieżkę podążasz do świata zewnętrznego.
Linux:
tracepath 8.8.8.8
Windows:
traceroute 8.8.8.8
Co powinno dać ci coś takiego
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 172.16.0.2 (172.16.0.2) 0.564 ms 0.882 ms 0.848 ms
2 ##.###.###.177 (##.###.###.177) 12.239 ms 13.040 ms 13.859 ms
Krok po mojej domyślnej trasie znalazł się w naszej sieci zewnętrznej.
Wyszukiwarka Google różniła się od tej, traceroute
ale tylko o jedną cyfrę. Wynika to z faktu, że aby móc się z nimi komunikować, potrzebny jest adres IP z tego samego zakresu co dostawca usług internetowych. Nasz router ma więc adres IP jeden w dół od naszego zewnętrznego adresu IP, który jest używany przez naszego dostawcę usług internetowych do kierowania ruchu do reszty świata.
Twój publiczny adres IP to ##. ###. ###. 178
Pomocne może być tutaj to, że jedno urządzenie, router, ma wszystkie trzy adresy IP. Prywatny, 172.16.0.2 (trasa domyślna) i wewnętrzny pod warunkiem, kup naszego ISP ##. ###. ###. 178, a zewnętrzny ##. ###. ###. 177 naszego ISP służy do łączenia się z Internetem. Jeśli więc wiem, jak zdalnie połączyć się z routerem za pomocą usługi Telnet / ssh, mogę użyć zapytania bezpośrednio do routera, aby uzyskać te informacje za pomocą wiersza polecenia.
Różne routery i dostawcy usług internetowych mają różne sposoby zarządzania tym. Większość domowych modemów DSL jest dość łatwa do uzyskania ssh, ponieważ masz hasło i dane logowania, ale jeśli ISP umieścił router w twoim biurze, prawdopodobnie nie dadzą ci dostępu do swojego routera.
Możesz użyć narzędzia Lynx, aby uzyskać zewnętrzny adres IP.
lynx --dump http://whatismyip.org
Twoje urządzenie nie zna twojego zewnętrznego adresu. Musisz skorzystać z usługi zewnętrznej i pobrać wyniki (np. Checkip.dyndns.org).
Możesz używać dowolnego klienta HTTP z linii poleceń jako wget lub curl:
$ wget -q -O - checkip.dyndns.org
<html><head><title>Current IP Check</title></head><body>Current IP Address: 129.132.208.173</body></html>
wget jest dostępny zarówno w systemie Windows, jak i GNU / Linux
ifconfig.me to witryna, którą można odwiedzić w przeglądarce, aby uzyskać prawie wszystkie potrzebne informacje. Możesz także użyć curl
tej strony z pokazanymi zmiennymi, aby uzyskać tylko ten konkretny element. Dane są zwracane w postaci sformatowanego ciągu JSON, co sprawia, że tworzenie skryptów jest bardzo łatwe. Więcej przykładów znajdziesz na dole strony ifconfig.me.
Na przykład:
curl ifconfig.me/ip
curl ifconfig.me/all