Si je vérifie avec google , je peux voir mon adresse IP publique. Y at-il quelque chose sur la ligne de commande Ubuntu qui me donnera la même réponse?
networking
kfmfe04
la source
la source
notify-send
.ifconfig eth1 | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*inet *([^ ]+).*/\2/p}'
où eth1 est le périphérique réseau qui vous intéresse, vous pouvez omettre la chaîne 'et1' pour afficher tous les ips de tous les adaptateurs. Au lieu de cela,\2
vous pouvez écrire\1 \2
pour afficher également les noms de chaque adaptateur.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 sera pas informé de l'adresse IP publique, car le routeur convertit les adresses réseau. Vous pouvez demander à un site Web quelle est votre adresse IP publique
curl
ou enwget
extraire les informations dont vous avez besoin:ou plus court
la source
curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'
autres possibilités sont énumérées ici: go2linux.org/what-is-my-public-ip-address-with-linuxPour trouver l'adresse IP externe, vous pouvez utiliser des services Web externes ou des méthodes basées sur le système. Le plus simple est d’utiliser le service externe, les
ifconfig
solutions basées ne fonctionneront dans votre système que si vous n’êtes pas en retardNAT
. les deux méthodes ont été discutées en détail ci-dessous.Recherche d'une adresse IP externe à 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. Puisque
wget
est disponible par défaut dans Ubuntu, nous pouvons l'utiliser.Pour trouver votre adresse IP, utilisez-
Courtoisie :
Vous pouvez également utiliser
lynx
(navigateur) oucurl
à la place dewget
modifications mineures à la commande ci-dessus, pour trouver votre adresse IP externe.Utiliser
curl
pour trouver l'ip:Pour une meilleure sortie formatée, utilisez:
Une méthode plus rapide (sans doute la plus rapide) utilisant
dig
avecOpenDNS
comme résolveur:Copié à partir de: https://unix.stackexchange.com/a/81699/14497
Trouver une IP externe sans faire appel à des services externes
Tapez ce qui suit dans votre terminal:
Dans ce qui précède, remplacer
<interface_name>
par le nom de votre interface réelle, par exemple:eth0
,eth1
,pp0
, etc ...Exemple d'utilisation:
Tapez ce qui suit dans votre terminal (cela donne le nom et l'adresse IP de chaque interface réseau de votre système):
Exemple d'utilisation:
NB: les résultats sont indicatifs et non réels.
Courtesy: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/
MISE À JOUR
LANG=c
a été ajouté aux utilisations deifconfig
base, de sorte qu'il donne toujours la sortie en anglais, quel que soit le réglage des paramètres régionaux.la source
sudo apt-get install wget
-w
option curl au lieu de echo :)curl -w '\n' ident.me
Mon préféré a toujours été:
simple, facile à taper.
Vous devrez d'abord installer curl;)
Si ifconfig.me est en panne, essayez icanhazip.com et ou ipecho.net
ou
la source
ifconfig.me
semble un peu plus lent queipecho.net
.curl
mais avezwget
:wget -U curl -qO- ifconfig.me
icanhazip.com est mon préféré.
Vous pouvez demander explicitement IPv4:
Si vous n'avez pas,
curl
vous pouvez utiliser à lawget
place:la source
J'ai trouvé que tout était ennuyeux et lent, alors j'ai écrit le mien. C'est simple et rapide
Son API est sur http://api.ident.me/
Exemples:
la source
time curl http://checkip.amazonaws.com
->0.91s
vs.241s
pourident.me
Prions simplement aws ne descend pas;)Vous pouvez utiliser une requête DNS au lieu d'une requête HTTP pour connaître votre adresse IP publique:
Il utilise le
resolver1.opendns.com
serveur dns pour résoudre le magiquemyip.opendns.com
nom d' hôte à votre adresse IP.la source
curl icanhazip.com
. Moyenne pour lacurl
version: 174ms. Moyenne pour la version uniquement DNS: 9 ms. ~ 19x plus vite. Voir aussi: unix.stackexchange.com/a/81699/8383curl
elle est plus lente quedig
. Même si elles étaient réécrites pour être aussi semblables que possible, celacurl
resterait quand même plus lent; il utilise HTTP ( y compris DNS) etdig
utilise uniquement DNS.Amazon AWS
Exemple de sortie:
Je l'aime parce que:
la source
Celui que j'utilise est:
Oui, vous pouvez avoir l'ip :-)
la source
curl icanhazip.com
parfoiswget
que la seule disponible, mais parfois non,wget
ellecurl
est votre seule option (comme OS / X). Quoi qu'il en soit,curl icanhazip.com
c'est presque aussi facile quecurl ifconfig.me
beaucoup, mais beaucoup plus drôle ;-)Tapez ceci exactement, appuyez à l' Enterendroit indiqué:
telnet ipecho.net 80
EnterGET /plain HTTP/1.1
EnterHOST: ipecho.net
EnterBROWSER: web-kit
EnterEnter
Ceci soumet manuellement une requête HTTP, qui retournera votre IP au bas d’une page.
HTTP/1.1 200 OK reply
Exemple de sortie:
la source
Un autre rapide (pourrait bien être le plus rapide, relativement)
la source
Pour cela, STUN a été inventé. En tant que client, vous pouvez envoyer une demande à un serveur STUN disponible publiquement et lui demander de restituer l'adresse IP qu'il voit. Sortez le whatismyip.com de bas niveau, car il n’utilise pas de HTTP ni de serveurs DNS intelligemment conçus, mais le protocole STUN extrêmement rapide.
En utilisant
stunclient
Si vous avez
stunclient
installé (apt-get install stuntman-client
sur debian / ubuntu) vous pouvez simplement faire:où
A.B.C.D
est l'adresse IP de votre machine sur le réseau local et où se trouvent lesW.X.Y.Z
serveurs d'adresse IP, tels que les sites Web vus de l'extérieur (et celui que vous recherchez). En utilisant,sed
vous pouvez réduire la sortie ci-dessus à une seule adresse IP:Cependant, votre question était de savoir comment le trouver à l'aide de la ligne de commande, ce qui pourrait exclure l'utilisation d'un client STUN. Alors je me demande ...
En utilisant
bash
Une demande STUN peut être faite à la main, envoyée à un serveur STUN externe à l'aide de
netcat
et être post-traitée à l'aide dedd
,hexdump
etsed
ainsi de suite:L'écho définit une demande binaire STUN (0x0001 indique une demande de liaison) ayant une longueur de 8 (0x0008) avec le cookie 0xc00cee et des éléments collés de Wireshark. Seuls les quatre octets représentant l'adresse IP externe sont extraits de la réponse, nettoyés et imprimés.
Fonctionne, mais pas recommandé pour une utilisation en production :-)
PS De nombreux serveurs STUN sont disponibles car il s’agit d’une technologie de base pour SIP et WebRTC. En utiliser un à partir de Mozilla devrait être sûr, mais vous pouvez aussi en utiliser un autre: liste de serveurs STUN
la source
J'ai un service stupide pour cela par telnet. Quelque chose comme ça:
Sentez-vous libre de l'utiliser.
la source
Vous pouvez lire une page Web en utilisant uniquement bash, sans
curl
,wget
:la source
checkip.amazonaws.com
est le plus rapide pour moiPour ceux d'entre nous qui ont un accès de connexion à nos routeurs, utiliser 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'adresse IP externe de mon routeur Medialink MWN-WAPR300N:
Notez que ceci n'est pas très sécurisé (comme c'est le cas avec les informations d'identification en texte clair et la connexion à la plupart des routeurs), et n'est certainement pas portable (doit être changé pour chaque routeur). C'est cependant une solution très rapide et 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.
la source
router = subprocess.check_output(['ip', '-o', 'ro', 'list', '0.0.0.0/0']).split()[2]
.Ceux-ci obtiendront les adresses IP locales:
ou pour une sortie plus courte:
aussi
et probablement:
Cela devrait obtenir l'IP externe
NB: Si vous ne voulez pas installer
curl
, ceci aussi:la source
ifconfig | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*addr: *([^ ]+).*/\1,\2/p}'
imprimera les interfaces locales et les adresses IP V4 correspondantesifconfig | sed -nre '/^[^ ]+/{N;N;s/^([^ ]+).*addr: *([^ ]+).*addr: *([^ ]+).*/\1,\2,\3/p}'
- IP v4 et v6.UPnP peut interroger de nombreux routeurs domestiques:
Ensuite, grep l'adresse IP de la réponse.
la source
Si vous utilisez DD-WRT, cela fonctionne pour moi:
ou
Où 192.168.1.1 est l'adresse IP du réseau local du routeur / routeur DD-WRT.
Le composant -s signifie silencieux (c’est-à-dire qu’il n’affiche pas les informations relatives à la progression de la boucle).
la source
Si vous avez installé Lynx dans le type Ubuntu
la source
curl bot.whatismyipaddress.com
fonctionne aussi.utiliser
ip
!puis recherchez l'adaptateur approprié (pas
lo
, et généralementeth0
), et localisez l'adresse IP prèsinet
.la source
Peut-être que je suis un peu en retard, mais Inxi peut le faire assez facilement.
Installer
inxi
Puis lancez la commande suivante
Exemple avec mes informations bloquées en utilisant l'
z
option de copier / coller vers des sites comme celui-ci:Où il
<filter>
est dit est où votre adresse IP WAN, IPv4, adresse MAC, etc. apparaîtrala source
Il vous suffit d'émettre un traceroute pour tout site Web ou service.
La ligne 2 semble toujours être mon adresse IP publique une fois celle-ci dépassée.
Alors, faites une commande bash.
Et la sortie ...
Je ne pense pas que compter sur des scripts PHP et le genre est une bonne pratique.
la source
Une commande sans dépendance, à l'exception de 8.8.8.8 qui est un DNS Google:
la source