Pokazuje mój wewnętrzny (do mojego routera) adres IP (np. 192.168.1.xxx), a nie zewnętrzny adres IP. (Podobnie jak większość innych odpowiedzi poniżej.)
ShreevatsaR
2
Nie działało dla mnie :(
Naveed Abbas
2
ifconfigpokazuje wszystkie interfejsy i ich adresy IP
aralar
4
echo Zewnętrzny adres IP:curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
grigb 16.08.16
30
Od lat się zmienia, „ipconfig getifaddr en0” jest domyślnym interfejsem Wi-Fi
Marek Szmalc
98
Poniższe działa dla mnie w wersji 10.8 i 10.10 Yosemite.
Moim zdaniem powinna to być odpowiedź zaakceptowana, ponieważ nie wymaga specyfikacji przewodowej vs. bezprzewodowej.
Erik Nomitch,
@ErikNomitch oprócz tego, że daje mi 2 z tą odpowiedzią
Zach Lysobey
Ach, więc wycofuję się. @ZachLysobey
Erik Nomitch
jest to najlepsze ogólne podejście, ale czasami trzeba zrobić trochę więcej grep zanim awk uzyska właściwą odpowiedź, a właściwa odpowiedź może się różnić.
uchuugaka,
Dodałem skrypt, który, mam nadzieję, powinien rozwiązać ten problem .. fyi!
Dlaczego głosowanie negatywne? Chociaż jest to zewnętrzny adres IP, polecenie jest prawidłowe i działa dla moich logowań ssh.
CousinCocaine
5
To jest publiczny adres IP i tego szukałem. ipconfig getifaddr en0dotyczy lokalnego adresu IP.
abriggs,
Na HighSierra musiałem uruchomić to jako SUDO. Poza tym zawiera listę zewnętrznego adresu IP. Wewnętrzny adres IP znajduje się w odpowiedzi od Brada Parks
Vincenta
19
Mam to ustawione w pliku kropkowym .aliases do częstego wyszukiwania adresów IP:
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en0"
Wpisz ifconfiglub ifconfig -a. To polecenie wyświetla listę interfejsów wraz z ich adresami IP i MAC (ten ostatni tylko, jeśli dotyczy). Możesz także wpisać ifconfig en0lub tylko w ifconfig en1celu konfiguracji konkretnego interfejsu (jak ktoś powiedział w swoich odpowiedziach, en0 to zazwyczaj przewodowy Ethernet, podczas gdy en1 to interfejs WiFi).
Alternatywnie, netstat -iwyświetli listę wszystkich interfejsów i pokaże adresy IP, które przypisałeś każdemu z nich.
Zazwyczaj, gdy demon SSH działa na urządzeniu, nasłuchuje na wszystkich dostępnych interfejsach, tj. możesz użyć dowolnego adresu IP skonfigurowanego na twoim komputerze, aby połączyć się z tym komputerem przez SSH (oczywiście, z zastrzeżeniem reguł zapory ogniowej). Jeśli szukasz tego, co system operacyjny nazywa głównym interfejsem i podstawowym adresem IP, możesz użyć następującego scutilpolecenia:
MacBook:~ scutil
> show State:/Network/Global/IPv4<dictionary>{PrimaryInterface: en0
PrimaryService: C0550F84-5C07-484F-8D62-C8B90DC977D8
Router:10.103.4.1}> show State:/Network/Interface/en0/IPv4<dictionary>{Addresses:<array>{0:10.103.4.234}BroadcastAddresses:<array>{0:10.103.4.255}SubnetMasks:<array>{0:255.255.255.0}}
Pamiętaj, że powyższe, mimo że jest to polecenie wiersza polecenia, jest również interaktywne (więc uruchamiasz, scutila następnie wpisujesz w nim własne polecenia). Pierwsze showpolecenie podaje nazwę podstawowego interfejsu systemu operacyjnego (tzn. Będzie to ten znajdujący się na górze listy w oknie Preferencji systemowych / Preferencji sieciowych), a także adres IP domyślnego routera. Drugie showpolecenie pobiera State:/Network/Interface/<ifname>/IPv4argument (w tym przypadku en0) i podaje adresy IP przypisane do niego. Szukasz adresu w tablicy Adresy, pozostałe dwa wpisy to adresy rozgłoszeniowe i maski sieciowe.
Mam nadzieję, że to pomaga, ale jeśli coś nie jest jasne, daj mi znać.
Uzyskuje to adres IP sieci wewnętrznej (np .: 192.168.0.*)nie zewnętrzny, widoczny w Internecie.
SimplGy
Dziękuję za tę opinię. Czy możesz mi powiedzieć, na jakiej wersji systemu operacyjnego jesteś? Czy możesz podać mi wynik netstat -nr | grep default?
dan
Pobiera adres IP interfejsu obsługującego ruch przychodzący / wychodzący. Jeśli jesteś za NAT, to poda twój adres LAN, a nie adres WAN. Ale może być przydatny do wielu celów i nie dociera do sieci.
folex
1
Dla przypomnienia możesz stworzyć skrypt bash z następującą zawartością, która da ci twój zewnętrzny adres IP
Odpowiedzi:
Użyj
ipconfig getifaddr en1
do połączenia bezprzewodowego lubipconfig getifaddr en0
Ethernet.Aktualizacja :
ipconfig getifaddr en0
jest domyślny dla interfejsu Wi-Fi.źródło
ifconfig
pokazuje wszystkie interfejsy i ich adresy IPcurl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
Poniższe działa dla mnie w wersji 10.8 i 10.10 Yosemite.
Jeśli powyższe informacje zawierają więcej niż jedną odpowiedź, zapisz następujące w skrypcie i uruchom je zamiast tego
ip_address.sh
źródło
Po prostu wpisz
curl ifconfig.me
terminal.źródło
ipconfig getifaddr en0
dotyczy lokalnego adresu IP.Mam to ustawione w pliku kropkowym .aliases do częstego wyszukiwania adresów IP:
źródło
Możesz wykonać następujące czynności:
Wpisz
ifconfig
lubifconfig -a
. To polecenie wyświetla listę interfejsów wraz z ich adresami IP i MAC (ten ostatni tylko, jeśli dotyczy). Możesz także wpisaćifconfig en0
lub tylko wifconfig en1
celu konfiguracji konkretnego interfejsu (jak ktoś powiedział w swoich odpowiedziach, en0 to zazwyczaj przewodowy Ethernet, podczas gdy en1 to interfejs WiFi).Alternatywnie,
netstat -i
wyświetli listę wszystkich interfejsów i pokaże adresy IP, które przypisałeś każdemu z nich.Zazwyczaj, gdy demon SSH działa na urządzeniu, nasłuchuje na wszystkich dostępnych interfejsach, tj. możesz użyć dowolnego adresu IP skonfigurowanego na twoim komputerze, aby połączyć się z tym komputerem przez SSH (oczywiście, z zastrzeżeniem reguł zapory ogniowej). Jeśli szukasz tego, co system operacyjny nazywa głównym interfejsem i podstawowym adresem IP, możesz użyć następującego
scutil
polecenia:Pamiętaj, że powyższe, mimo że jest to polecenie wiersza polecenia, jest również interaktywne (więc uruchamiasz,
scutil
a następnie wpisujesz w nim własne polecenia). Pierwszeshow
polecenie podaje nazwę podstawowego interfejsu systemu operacyjnego (tzn. Będzie to ten znajdujący się na górze listy w oknie Preferencji systemowych / Preferencji sieciowych), a także adres IP domyślnego routera. Drugieshow
polecenie pobieraState:/Network/Interface/<ifname>/IPv4
argument (w tym przypadkuen0
) i podaje adresy IP przypisane do niego. Szukasz adresu w tablicy Adresy, pozostałe dwa wpisy to adresy rozgłoszeniowe i maski sieciowe.Mam nadzieję, że to pomaga, ale jeśli coś nie jest jasne, daj mi znać.
źródło
echo "show State:/Network/Interface/$(echo 'show State:/Network/Global/IPv4' | scutil | grep 'PrimaryInterface ' | sed 's/ PrimaryInterface : //')/IPv4" | scutil | pcregrep -Mo1 " Addresses : <array> {\n 0 : ([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})"
Aby uzyskać adres IP komputera z dostępem do Internetu, oto działający przepis:
Powinno działać nawet wtedy, gdy masz aktywnych wiele interfejsów, nawet jeśli masz interfejsy, nie wiesz, który z nich jest domyślną bramą.
źródło
192.168.0.*)
nie zewnętrzny, widoczny w Internecie.netstat -nr | grep default
?Dla przypomnienia możesz stworzyć skrypt bash z następującą zawartością, która da ci twój zewnętrzny adres IP
źródło
wget
nie jest częścią systemu macOS i musi zostać zainstalowany ze źródła innego niż Apple.curl -s http://ipecho.net/plain; echo