Question Commande pour déterminer mon adresse IP publique?


Si je vérifie avec Google, Je peux voir mon adresse IP publique. Y a-t-il quelque chose sur la ligne de commande Ubuntu qui me donnera la même réponse?


526
2018-01-16 11:50


origine


"avoir une IP dynamique", "SSH utilisant un autre système sur Internet", "la commande qui affichera l'adresse IP publique actuelle". Vous voyez le problème poulet / œuf ici? Comment pourriez-vous exécuter des commandes sur un serveur distant sans connaître son adresse? Vous pourriez être plus intéressé par des services comme no-ip.com / DynDNS.org. - gertvdijk
on ne peut pas SSH sans connaître l'adresse IP publique de mon ami ... dynDNS coûte très cher et pas de travail difficile mais la situation ne le permet pas ... de toute façon la question a déjà été répondue .. merci pour votre suggestion - Z9iT
PS duckduckgo.com/?q=ip (pas de ligne de commande, mais pas de grand frère G ni) - Campa
Peut-être que cela devrait être une question distincte, mais j'aimerais voir une alerte lorsque mon adresse IP publique change. Pour l'instant, j'utilise les réponses suivantes dans une crontab avec notify-send. - PJ Brunet


Réponses:


Si vous n'êtes pas derrière un routeur, vous pouvez le trouver en utilisant ifconfig.

Si vous êtes derrière un routeur, votre ordinateur ne connaîtra pas l'adresse IP publique car le routeur effectue une traduction des adresses réseau. Vous pouvez demander à un site Web quelle est votre adresse IP publique curl ou wget et en extraire les informations dont vous avez besoin:

curl -s checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  

ou plus court

curl ipinfo.io/ip

748
2018-01-16 11:56



ty - juste après mon post, je me suis rendu compte que je ne cherchais pas la première réponse à google: on dirait que ça va marcher curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  D'autres possibilités sont listées ici: go2linux.org/what-is-my-public-ip-address-with-linux - kfmfe04
Bien sûr - vous pouvez l'ajouter à votre réponse - kfmfe04
Pour clarifier: c'était un hack, et très laid, alors j'ai fait un montage pour le rendre plus simple et quelque chose dont les gens peuvent se souvenir. - jrg♦
Exactement comme l'a déclaré Giovanni P. Le PO devrait changer la réponse acceptée. - loostro
curl -s ipinfo.io/ip - chao


Pour trouver l'adresse IP externe, vous pouvez utiliser des services Web externes ou utiliser des méthodes basées sur le système. Le plus facile est d'utiliser le service externe, également le ifconfig les solutions basées fonctionnera dans votre système seulement si vous n'êtes pas derrière un NAT. les deux méthodes ont été discutées ci-dessous en détail.

Recherche d'adresses IP externes à l'aide de services externes

Le moyen le plus simple consiste à utiliser un service externe via un navigateur en ligne de commande ou un outil de téléchargement. Depuis wget est disponible par défaut dans Ubuntu, nous pouvons l'utiliser.
Pour trouver votre adresse IP, utilisez-

$ wget -qO- http://ipecho.net/plain ; echo

Courtoisie:

Vous pouvez aussi utiliser lynx(navigateur) ou curl au lieu de wget avec des variations mineures à la commande ci-dessus, pour trouver votre adresse IP externe.

En utilisant curl pour trouver l'IP:

$ curl ipecho.net/plain

Pour une meilleure utilisation de la sortie formatée:

$ curl ipecho.net/plain ; echo

Une méthode plus rapide (sans doute la plus rapide) utilisant dig avec OpenDNS en tant que résolveur:

Les autres réponses sont toutes transmises via HTTP à un serveur distant. Une partie de   ils nécessitent l'analyse de la sortie, ou reposent sur l'en-tête User-Agent   pour que le serveur réponde en texte clair. Ils changent aussi assez   fréquemment (descendre, changer de nom, afficher des annonces, changer   format de sortie etc.).

  1. Le protocole de réponse DNS est standardisé (le format restera compatible).
  2. Historiquement, les services DNS (OpenDNS, Google Public DNS, ..) ont tendance à survivre beaucoup plus longtemps et sont plus stables, évolutifs et généralement considérés   après quoi, le service HTTP whatismyip.com est à la mode aujourd'hui.
  3. (pour les geeks qui se soucient de la micro-optimisation), cette méthode devrait être intrinsèquement plus rapide (que ce soit de quelques micro secondes seulement).

Utiliser dig avec OpenDNS comme résolveur:

$ dig +short myip.opendns.com @resolver1.opendns.com

111.222.333.444

Copié de:  https://unix.stackexchange.com/a/81699/14497

Recherche d'IP externe sans recourir à des services externes

  • Si vous connaissez le nom de votre interface réseau

Tapez ce qui suit dans votre terminal:

$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'

Dans ce qui précède, remplacez <interface_name> avec le nom de votre interface réelle, par exemple: eth0, eth1, pp0, etc...

Exemple d'utilisation:

$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
  • Si vous ne connaissez pas votre nom d'interface réseau

Tapez ce qui suit dans votre terminal (cela permet d'obtenir le nom et l'adresse IP de chaque interface réseau de votre système):

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'

Exemple d'utilisation:

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444

N.B: Les sorties sont indicatives et non réelles.

Courtoisie:  http://www.if-not-true-then-false.com/2010/linux-get-ip-address/

METTRE À JOUR 

  1. LANG=c a été ajouté à ifconfig usages basés, de sorte qu'il donne toujours la sortie anglaise, indépendamment des paramètres régionaux.

364
2018-06-01 12:10



@ Z9iT, bien sûr .. Cela devrait fonctionner dans toute distribution Linux à condition que vous ayez wget installé. Comme dit précédemment si vous avez soit curl ou lynx déjà disponible, utilisez-le plutôt. Vous auriez besoin de la permission root pour l’installer sudo apt-get install wget - saji89
Les commandes avec ifconfig ne fonctionnent que si vous n'êtes pas derrière un NAT. - lukassteiner
juste utiliser -w option curl au lieu d'écho :) curl -w '\n' ident.me - drAlberT
Cette proposition utilisant dig est plutôt sympa unix.stackexchange.com/questions/22615/… - binaryanomaly
@saji ifconfig si obsolète, s'il vous plaît utiliser iproute2 ;)). La commande serait ip -o -4 a s eth0 | awk '{sub(/\/.*/, "", $4);print $4}'. - bufh


Mon préféré a toujours été:

curl ifconfig.me

simple, facile à taper

Vous devrez d'abord installer Curl;)

Si ifconfig.me est en panne, essayez icanhazip.com et ou ipecho.net

curl icanhazip.com

ou

curl ipecho.net

103
2018-06-01 12:41



@ Z9iT, je viens de vérifier cela maintenant. Oui, cela produirait l'ip externe dans votre terminal. - saji89
Le temps de réponse de ifconfig.me semble un peu plus lent que ipecho.net. - Drew Noakes
Si vous n'avez pas curl mais avoir wget: wget -U curl -qO- ifconfig.me - Stéphane Chazelas
ifconfig.me ne semble pas répondre :( - Asfand Qazi
@ AsfandYarQazi - travaille ici. Vous pouvez essayer l'un des suppléants, icanhazip.com - Panther


icanhazip.com est mon préféré.

curl icanhazip.com

Vous pouvez demander explicitement IPv4:

curl ipv4.icanhazip.com

Si vous n'avez pas curl vous pouvez utiliser wget au lieu:

wget -qO- icanhazip.com

55
2018-06-01 17:23



essayer ipv4.icanhazip.com - yprez
IPv4: curl ipv4.icanhazip.com     IPv6: curl ipv6.icanhazip.com - Peter
Busybox n'a pas de boucle, utilisez plutôt ceci: wget -qO- http://icanhazip.com - Hengjie
voici une commande de bash-only: exec 3<>/dev/tcp/icanhazip.com/80 && echo -e 'GET / HTTP/1.0\n' >&3 && cat <&3 - jfs
ipv6.icanhazip.com semble ne plus fonctionner. - Hibou57


J'ai trouvé que tout était ennuyeux et lent, alors j'ai écrit le mien. C'est simple et rapide.

Son API est activée http://api.ident.me/

Exemples:

curl ident.me
curl v4.ident.me
curl v6.ident.me

44
2018-01-03 15:49



Woah, c'était vraiment vite! - waldyrious
je trouve la solution icanhazip.com plus rapide et il inclut une nouvelle ligne dans la sortie. - Tyler Collier
Oui, c'était effectivement plus rapide ces derniers temps. Juste peaufiné ma solution. - Pierre Carrier
Gloire! 2 ans et vous le maintenez toujours. Bien joué. "IDENTify ME", est ce qui me vient à l'esprit, quand j'ai besoin de vérifier ip :) - Mohnish
@PierreCarrier v6.ident.me ne marche pas - SebMa


Vous pouvez utiliser une requête DNS au lieu d'une requête HTTP pour connaître votre adresse IP publique:

$ dig +short myip.opendns.com @resolver1.opendns.com

Il utilise resolver1.opendns.com serveur DNS pour résoudre le problème magique myip.opendns.com nom d'hôte à votre adresse IP.


37
2018-02-27 15:07



C'est vraiment vite. J'ai fait une exécution d'échauffement, puis 10 exécutions chacune de celles-ci et curl icanhazip.com. Moyenne pour le curl version: 174ms. Moyenne pour la version DNS uniquement: 9 ms. ~ 19x plus vite. Voir également: unix.stackexchange.com/a/81699/8383 - Adam Monsen
@AdamMonsen Merci pour le lien. Le but de l'utilisation de DNS (comme le dit la réponse que vous avez liée) est que la réponse est standard (et peu susceptible de changer) et que le service (OpenDNS) peut rester plus longtemps que la plupart de ses alternatives http. Le temps nécessaire à l'exécution de la demande peut être masqué par l'heure de démarrage de la commande. - jfs
Oui. Je ne serais pas surpris si curl lui-même est plus lent que dig. Même si elles ont été réécrites pour être aussi similaires que possible, curl serait toujours plus lent; il utilise HTTP (comprenant DNS) et dig utilise uniquement le DNS. - Adam Monsen


Celui que j'utilise est:

wget -O - -q icanhazip.com

Oui, vous pouvez avoir ip :-)


18
2018-01-16 14:20



je préfère curl icanhazip.com parfois wget est le seul disponible, mais parfois pas wget est également disponible et curl est votre seule option (comme OS / X). D'une manière ou d'une autre curl icanhazip.com est presque aussi facile que curl ifconfig.me mais beaucoup plus drôle ;-) - TryTryAgain