422 votes

Comment trouver mon adresse IP à partir de la ligne de commande ?

Je sais que tu peux le faire ifconfig | grep inet mais cela vous montre plusieurs adresses IPv4. Comment puis-je obtenir l'adresse spécifique pour le SSHing et autres ?

3 votes

Ce que vous cherchez, ce n'est pas l'adresse IP de votre Mac, mais la public Adresse IP que votre FAI a attribuée à l'interface Internet de votre routeur.

0 votes

Il faut changer le titre pour l'adresse IP publique.

4 votes

Cela a fonctionné pour moi : > curl ipecho.net/plain ; echo

497voto

daviesgeek Points 35275

Utilisez ipconfig getifaddr en1 pour le sans fil, ou ipconfig getifaddr en0 pour ethernet.

ipconfig getifaddr en0 est la valeur par défaut de l'adaptateur réseau Wi-Fi.

Vous pouvez également le faire :

dig -4 TXT +short o-o.myaddr.l.google.com @ns1.google.com

Sortie, par exemple :

172.79.136.120

22 votes

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).

5 votes

Ça n'a pas marché pour moi :(

7 votes

ifconfig montre toutes les interfaces et leurs IPs

193voto

Brad Parks Points 1893

Ce qui suit fonctionne pour moi sur 10.8 et sur 10.10 Yosemite.

ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' 

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

#!/usr/bin/env bash

dumpIpForInterface()
{
  IT=$(ifconfig "$1") 
  if [[ "$IT" != *"status: active"* ]]; then
    return
  fi
  if [[ "$IT" != *" broadcast "* ]]; then
    return
  fi
  echo "$IT" | grep "inet " | grep -v 127.0.0.1 | awk '{print $2}'
}

main()
{
  # snagged from here: https://superuser.com/a/627581/38941
  DEFAULT_ROUTE=$(route -n get 0.0.0.0 2>/dev/null | awk '/interface: / {print $2}')
  if [ -n "$DEFAULT_ROUTE" ]; then
    dumpIpForInterface "$DEFAULT_ROUTE"
  else
    for i in $(ifconfig -s | awk '{print $1}' | awk '{if(NR>1)print}')
    do 
      if [[ $i != *"vboxnet"* ]]; then
        dumpIpForInterface "$i"
      fi
    done
  fi
}

main

8 votes

La devrait être la réponse acceptée à mon avis puisqu'elle ne nécessite pas de spécification filaire ou sans fil.

0 votes

@ErikNomitch sauf qu'il me donne 2 avec cette réponse

0 votes

Ah, je me retire alors. @ZachLysobey

168voto

Kcidkcus Points 1187

Tapez simplement curl ifconfig.me dans le terminal.

1 votes

Votre réponse échoue si son interface "ssh" a une adresse privée RFC 1918.

1 votes

C'est la bonne réponse.

44voto

thibmaek Points 787

Je l'ai configuré dans un fichier .aliases pour une recherche fréquente d'adresses IP :

alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
alias localip="ipconfig getifaddr en0"

0 votes

Pour moi, l'option localip ne fonctionne plus, mais celle-ci fonctionne : ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}'

0 votes

C'est la meilleure réponse : Alors que dig n'atteint pas l'extérieur de votre machine, c'est un résolveur de nom de domaine, ce qui signifie que sa fonction principale est précisément de faire correspondre le nom de domaine à l'adresse IP. Dans ce cas, il s'agit de votre propre adresse IP, bien sûr.

0 votes

L'alias IP ne semble pas fonctionner (je suis sur OSX Catalina). Celui-ci fonctionne : curl -s http://ipecho.net/plain; echo

31voto

mike Points 1801

Vous pouvez procéder comme suit :

Tipo ifconfig o ifconfig -a . Cette commande vous montre la liste des interfaces avec leurs adresses IP et MAC (cette dernière uniquement si elle est applicable). Vous pouvez également taper ifconfig en0 o ifconfig en1 pour la configuration d'une interface particulière uniquement (comme quelqu'un l'a dit dans ses réponses, en0 est typiquement l'interface Ethernet filaire tandis que en1 est l'interface WiFi).

Comme alternative, netstat -i listera toutes les interfaces et vous montrera les adresses IP que vous avez assignées à chacune d'entre elles.

En général, lorsque le démon SSH fonctionne sur une machine, il écoute sur toutes les interfaces disponibles, c'est-à-dire que vous pouvez utiliser n'importe quelle adresse IP configurée sur votre machine pour vous connecter à cette machine via SSH (ceci, évidemment, sous réserve des règles du pare-feu). Si vous recherchez ce que le système d'exploitation appelle une interface primaire et une adresse IP primaire, vous pouvez utiliser la commande scutil comme ceci :

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
  }
}

Veuillez noter que la commande ci-dessus, même si elle est en ligne de commande, est également interactive (vous exécutez donc scutil et y entrer ses propres commandes). La première show vous indique le nom de l'interface primaire du système d'exploitation (c'est-à-dire celle qui se trouve en haut de la liste dans la fenêtre Préférences Système / Préférences Réseau), ainsi que l'adresse IP de votre routeur par défaut. La seconde show La commande prend State:/Network/Interface/<ifname>/IPv4 (dans ce cas, en0 ) et vous donne les adresses IP qui lui sont attribuées. Vous cherchez l'adresse dans le tableau Adresses, les deux autres entrées sont les adresses de diffusion et les masques de réseau.

J'espère que cela vous aidera, mais si quelque chose n'est pas clair, faites-le moi savoir.

3 votes

Merci pour cette réponse. J'ai écrit un script rapide pour obtenir l'IP de votre interface primaire : 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})"

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X