764 votes

Commande pour déterminer mon IP public ?

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

2 votes

"avoir une IP dynamique", "SSH utilisant un autre système à travers l'internet", "la commande qui affichera l'IP publique actuelle". Vous voyez le problème de la poule et de l'oeuf ici ? Comment seriez-vous en mesure d'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.

0 votes

On ne peut pas SSH sans connaître l'IP publique mon ami... dynDNS coûte cher et le no-ip fonctionne mais la situation ne le permet pas... de toute façon la question a déjà été répondue... merci pour votre suggestion

1 votes

PS duckduckgo.com/?q=ip (pas de ligne de commande, mais pas de grand frère G non plus)

11voto

Mohnish Points 253

Un autre rapide (qui pourrait bien être le plus rapide, relativement)

curl ipecho.net/plain

8voto

SmashMom Points 9

J'ai un service stupide pour cela par telnet. Quelque chose comme ça :

telnet myip.gelma.net

Your IPv4: xxx.xxx.xxx.xxx
Your IPv6: ::ffff:xxxx:xxxx

N'hésitez pas à l'utiliser.

8voto

Barry Kelly Points 30330

Vous pouvez lire une page web en utilisant uniquement bash, sans curl , wget :

$ exec 3<> /dev/tcp/icanhazip.com/80 && # open connection
  echo 'GET /' >&3 &&                   # send http 0.9 request
  read -u 3 && echo $REPLY &&           # read response
  exec 3>&-                             # close fd

4voto

Wilf Points 28034

Ceux-ci obtiendront les IPs locales :

ifconfig

ou pour une sortie plus courte :

ifconfig | grep inet

également

ip addr show

et probablement :

hostname -I

Cela devrait permettre d'obtenir l'IP externe

wget http://smart-ip.net/myip -O - -q ; echo

N.B. Si cela ne vous dérange pas d'installer curl , cela aussi :

curl http://smart-ip.net/myip

3voto

Kieren Dixon Points 326

Pour ceux d'entre nous qui ont un accès de connexion à leurs routeurs, l'utilisation d'un script pour demander au routeur quelle est son' adresse IP WAN est le moyen le plus efficace de déterminer l'adresse IP externe. Par exemple, le script Python suivant imprime l'IP externe de mon routeur Medialink MWN-WAPR300N :

import urllib, urllib2, cookielib
import re
from subprocess import check_output as co

cookie_jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
urllib2.install_opener(opener)

def get(url, values=None):
  data = None
  if values: data = urllib.urlencode(values)
  req = urllib2.Request(url, data)
  rsp = urllib2.urlopen(req)
  return rsp.read()

router = co(['ip', '-o', 'ro', 'list', '0.0.0.0/0']).split()[2]
url = "http://" + router

get(url+"/index.asp")
get(url+"/LoginCheck", dict(checkEn='0', Username='admin', Password='admin'))
page = get(url+"/system_status.asp")

for line in page.split("\n"):
  if line.startswith("wanIP = "):
    print line.split('"')[1]
    exit(1)

Notez que cette méthode n'est pas très sûre (comme c'est le cas avec les informations d'identification en clair et la connexion à la plupart des routeurs), et n'est certainement pas portable (elle doit être modifiée pour chaque routeur). Elle est cependant très rapide et constitue une solution parfaitement raisonnable sur un réseau domestique physiquement sécurisé.

Pour personnaliser le script pour un autre routeur, je recommande d'utiliser l'addon tamperdata dans firefox pour déterminer les requêtes HTTP à effectuer.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X