Comment trouver mon adresse IP à partir de la ligne de commande?
159
Je sais que vous pouvez le faire ifconfig | grep inet, mais cela vous montre plusieurs adresses IPv4. Comment puis-je obtenir le spécifique pour SSHing et al?
Ce que vous recherchez, ce n’est pas votre adresse IP Mac, mais l’ adresse IP publique attribuée par votre fournisseur de services Internet à l’interface Internet de votre routeur.
Dan
Réponses:
168
Utilisez ipconfig getifaddr en1pour le sans fil, ou ipconfig getifaddr en0pour Ethernet.
Mise à jour :
ipconfig getifaddr en0 est la valeur par défaut pour l'interface wifi.
Cela montre mon adresse IP interne (à mon routeur) (par exemple 192.168.1.xxx), pas l’adresse IP externe. (Comme la plupart des autres réponses ci-dessous.)
ShreevatsaR
2
N'a pas travaillé pour moi :(
Naveed Abbas
2
ifconfigaffiche toutes les interfaces et leurs adresses IP
aralar
4
echo curl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
Adresse
30
Il a changé depuis des années, 'ipconfig getifaddr en0' est le paramètre par défaut pour l'interface wifi
Marek Szmalc le
98
Ce qui suit fonctionne pour moi sur 10.8 et 10.10 Yosemite.
Pourquoi le vote négatif? Bien que ce soit une adresse IP extérieure, la commande est valide et fonctionne pour mes connexions ssh.
CousinCocaine
5
C'est l'adresse IP publique et ce que je cherchais. ipconfig getifaddr en0est pour IP locale.
Abriggs
Sur HighSierra, je devais exécuter ceci en tant que SUDO. Outre cela répertorie l'adresse IP externe. Pour l'adresse IP interne, voir la réponse de Brad Parks
Vincent le
19
J'ai ceci mis en place dans un fichier .aliases pour la recherche fréquente sur ip:
alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en0"
Tapez ifconfigou ifconfig -a. Cette commande vous montre la liste des interfaces avec leurs adresses IP et MAC (la dernière uniquement si applicable). Vous pouvez également taper ifconfig en0ou ifconfig en1pour la configuration d'une interface particulière uniquement (comme quelqu'un l'a dit dans ses réponses, en0 est généralement Ethernet câblé tandis que en1 est l'interface WiFi).
Comme alternative, netstat -ilistera toutes les interfaces et vous montrera les adresses IP que vous avez attribuées à chacun d'eux.
Généralement, lorsque le démon SSH s'exécute sur une boîte, il écoute toutes les interfaces disponibles, c.-à-d. vous pouvez utiliser n'importe quelle adresse IP configurée sur votre ordinateur pour vous connecter à cet ordinateur via SSH (ceci, évidemment, sous réserve des règles du pare-feu). Si vous êtes après ce que le système d'exploitation appelle une interface principale et une adresse IP principale, vous pouvez utiliser la scutilcommande comme ceci:
MacBook:~ scutil> show State:/Network/Global/IPv4<dictionary>{PrimaryInterface: en0PrimaryService: C0550F84-5C07-484F-8D62-C8B90DC977D8Router: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}}
Notez que ce qui précède, même s’il s’agit d’une commande de ligne de commande, est également interactif (vous devez donc exécuter scutilpuis entrer ses propres commandes). La première showcommande vous indique le nom de l’interface principale du système d’exploitation (c’est-à-dire celui qui se trouve en haut de la liste dans la fenêtre Préférences Système / Réseau), ainsi que l’adresse IP de votre routeur par défaut. La deuxième showcommande prend en State:/Network/Interface/<ifname>/IPv4argument (dans ce cas, en0) et vous donne les adresses IP qui lui sont attribuées. Vous recherchez l'adresse dans le tableau Adresses, les deux autres entrées sont des adresses de diffusion et les masques de réseau.
J'espère que ça aide, mais si quelque chose n'est pas clair, faites le moi savoir.
Cela devrait fonctionner même lorsque plusieurs interfaces sont actives, même si vous avez des interfaces dont vous ne savez pas quelle est la passerelle par défaut.
Cela donne l’adresse IP du réseau interne (par exemple 192.168.0.*)
:,
Merci pour ce retour Pourriez-vous me dire sur quelle version de l'OS vous êtes? Pourriez-vous me fournir la sortie de netstat -nr | grep default?
dan
Cela obtient l'IP de l'interface qui sert le trafic entrant / sortant. Si vous êtes derrière NAT, cela donnera votre adresse LAN, pas l'adresse WAN. Mais cela peut être utile pour beaucoup de choses, et cela n'atteint pas le réseau.
folex
1
Juste pour information, vous pouvez créer un script bash avec le contenu suivant, qui vous donne votre adresse IP externe.
Réponses:
Utilisez
ipconfig getifaddr en1
pour le sans fil, ouipconfig getifaddr en0
pour Ethernet.Mise à jour :
ipconfig getifaddr en0
est la valeur par défaut pour l'interface wifi.la source
ifconfig
affiche toutes les interfaces et leurs adresses IPcurl -s http://checkip.dyndns.org/ | sed 's/[a-zA-Z<>/ :]//g'
Ce qui suit fonctionne pour moi sur 10.8 et 10.10 Yosemite.
Si vous trouvez que ce qui précède vous donne plus d'une réponse, enregistrez ce qui suit dans un script et exécutez-le à la place.
ip_address.sh
la source
Il suffit de taper
curl ifconfig.me
dans le terminal.la source
ipconfig getifaddr en0
est pour IP locale.J'ai ceci mis en place dans un fichier .aliases pour la recherche fréquente sur ip:
la source
Vous pouvez faire ce qui suit:
Tapez
ifconfig
ouifconfig -a
. Cette commande vous montre la liste des interfaces avec leurs adresses IP et MAC (la dernière uniquement si applicable). Vous pouvez également taperifconfig en0
ouifconfig en1
pour la configuration d'une interface particulière uniquement (comme quelqu'un l'a dit dans ses réponses, en0 est généralement Ethernet câblé tandis que en1 est l'interface WiFi).Comme alternative,
netstat -i
listera toutes les interfaces et vous montrera les adresses IP que vous avez attribuées à chacun d'eux.Généralement, lorsque le démon SSH s'exécute sur une boîte, il écoute toutes les interfaces disponibles, c.-à-d. vous pouvez utiliser n'importe quelle adresse IP configurée sur votre ordinateur pour vous connecter à cet ordinateur via SSH (ceci, évidemment, sous réserve des règles du pare-feu). Si vous êtes après ce que le système d'exploitation appelle une interface principale et une adresse IP principale, vous pouvez utiliser la
scutil
commande comme ceci:Notez que ce qui précède, même s’il s’agit d’une commande de ligne de commande, est également interactif (vous devez donc exécuter
scutil
puis entrer ses propres commandes). La premièreshow
commande vous indique le nom de l’interface principale du système d’exploitation (c’est-à-dire celui qui se trouve en haut de la liste dans la fenêtre Préférences Système / Réseau), ainsi que l’adresse IP de votre routeur par défaut. La deuxièmeshow
commande prend enState:/Network/Interface/<ifname>/IPv4
argument (dans ce cas,en0
) et vous donne les adresses IP qui lui sont attribuées. Vous recherchez l'adresse dans le tableau Adresses, les deux autres entrées sont des adresses de diffusion et les masques de réseau.J'espère que ça aide, mais si quelque chose n'est pas clair, faites le moi savoir.
la source
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})"
Pour obtenir l'adresse IP de votre ordinateur face à Internet, voici un reçu qui fonctionne:
Cela devrait fonctionner même lorsque plusieurs interfaces sont actives, même si vous avez des interfaces dont vous ne savez pas quelle est la passerelle par défaut.
la source
192.168.0.*)
netstat -nr | grep default
?Juste pour information, vous pouvez créer un script bash avec le contenu suivant, qui vous donne votre adresse IP externe.
la source
wget
ne fait pas partie de macOS et doit être installé à partir d'une source autre que Apple.curl -s http://ipecho.net/plain; echo