Utilisez-vous Linux, MacOSX, FreeBSD, etc.? La sortie de 'ifconfig' est différente pour ces différents systèmes d'exploitation et la commande 'ip' n'existe pas sur MacOSX. Recherchez-vous l'adresse IP de votre ordinateur (vous aurez besoin d'un script shell pour analyser ifconfig, ou quelque chose du genre) ou de votre routeur (les sites Web ci-dessous pourraient fonctionner)?
Stefan Lasiewski
Réponses:
49
curl ifconfig.me
curl ifconfig.me/ip (pour juste l'ip)
curl ifconfig.me/all (pour plus d'informations, prend du temps)
Ce lien est mort. Vous pouvez utiliser ceci à la place:curl http://checkip.amazonaws.com/
Farhan.K
@ Farhan.K s'il vous plaît poster ceci comme une réponse car c'est probablement la meilleure réponse. Si vous ne le faites pas, je mentionnerai votre nom
Aliostad le
@Aliostad ne hésitez pas à le poster :)
Farhan.K
@ Farhan.K argh, protégé: /
Aliostad
26
Vous pouvez demander myip.opendns.com. de OpenDNS. dig @208.67.222.220 myip.opendns.com
C'est juste cool. Pour plus facile de se rappeler la version, vous pouvez mettre en dig @resolver1.opendns.com myip.opendns.com. Ou sous Windows: nslookup myip.opendns.com resolver1.opendns.com.
Michael Kropat
2
Ce qui a fonctionné le mieux pour moi: dig @208.67.222.220 myip.opendns.com +shortpour obtenir directement l'adresse IP sans avoir à passer par toute la réponse.
dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
dig -4 @resolver1.opendns.com -t a myip.opendns.com +short
Notez que ce qui précède ne fonctionne que pour IPv4 pour le moment (aucun de ces résolveurs ne semble même avoir IPv6 pour le moment, mais si vous omettez -4le texte explicite -t a, vous risqueriez de le perdre à l’avenir (à l’exception de celui de Google txt, qui pourrait en réalité fonctionner pour IPv6 un jour, si correctement activé par Google)).
Notez que cela myip.opendns.comne peut être résolu que par resolver1.opendns.com, et non pas avec auth1.opendns.com- donc, ils semblent faire du piratage DNS et de l'homme au milieu de leur propre nom de domaine! Ainsi, vous ne pouvez pas l'utiliser pour trouver l'adresse IP d'un résolveur aléatoire, car resolver1.opendns.comne fait pas autorité pour myip.opendns.com.
Notez que cela o-o.myaddr.l.google.comressemble à l'approche la plus flexible et la plus durable; c'est même utile pour tester si votre résolveur DNS prend en charge l'extension EDNS0 expérimentale pour le sous-réseau client (que très peu de résolveurs ont le support):
% dig @8.8.8.8 -t txt o-o.myaddr.l.google.com +noall +answer +stats | tail -8
;; global options: printcmd
o-o.myaddr.l.google.com. 60 IN TXT "74.125.189.16"
o-o.myaddr.l.google.com. 60 IN TXT "edns0-client-subnet 88.198.54.0/24"
;; Query time: 13 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Dec 8 20:38:46 2013
;; MSG SIZE rcvd: 114
De nos jours, la méthode qui consiste à obtenir des enregistrements TXT auprès de Google prend en charge les protocoles IPv4 et IPv6. Vous devez donc spécifier -4ou -6si vous avez besoin d’une version IP spécifique.
Martin
12
Une réponse très simple si vous avez accès à Internet est:
curl icanhazip.com
N'oubliez pas qu'il peut être problématique de faire confiance à des sources tierces pour votre adresse IP, en particulier si ce que vous faites avec ces données a une signification particulière.
Une méthode plus fiable consiste à choisir un serveur DNS connu et digne de confiance (exécutant idéalement DNSSEC) et à interroger le nom d’hôte de la boîte avec celui-ci, à condition que votre serveur DNS contienne de telles entrées;
vous êtes directement connecté à Internet (pas de NAT / proxy / VPN, etc.)
alors vous pouvez simplement analyser la sortie de ifconfig pour les adresses IP des interfaces (la partie "inet addr:") pour obtenir la liste des adresses IP de toutes vos interfaces. L'adresse IP unique qui n'est pas dans la plage privée (voir http://en.wikipedia.org/wiki/IP_address#IPv4_private_addresses ) est votre adresse IP publique.
La même liste peut également être obtenue via
ip addr show
qui peut être plus facile à analyser.
Si vous ne disposez pas d'une connexion Internet directe (NAT, etc.), il est impossible de trouver votre adresse IP publique sans aide externe (car votre ordinateur ne le sait pas). Ensuite, vous devrez le faire comme dans les autres réponses.
J'ai adopté une approche légèrement différente en utilisant le protocole STUN conçu pour NAT Traversal. Si vous utilisez Ubuntu, vous pouvez simplement installer le paquet "stun" en tapant:
sudo apt-get install stun
Le paquet installe un serveur STUN dont vous n’auriez probablement pas besoin, mais il est également livré avec un client de test STUN que j’ai utilisé pour résoudre ce problème. Maintenant, vous pouvez récupérer votre adresse IP publique avec une commande (pas si simple):
Maintenant, ce qu'il fait est: stun contacte le serveur STUN public "stunserver.org" et reçoit une réponse avec votre adresse IP publique; le reste de la commande consiste simplement à filtrer l'adresse IP de la sortie.
Il sert du texte brut avec un type de texte / html ...
bortzmeyer
n'est-ce pas l'affichage de votre adresse IP dans votre navigateur?
2
Mais avec le mauvais type.
bortzmeyer
@ bortzmeyer Euh, quel est le "bon type"? text/htmlconvient pour ce que cette pseudo-API renvoie - ce n'est certainement pas XML ou JSON. text/plainpeut-être, mais c'est tout à fait utilisable comme text/html.
ceejayoz
3
+1 pour une page qui n'a pas besoin de greps. Aussiwget -q -O - http://wgetip.com/
Pour une raison étrange, Google n'affiche que votre adresse IP en fonction de la User-Agentchaîne fournie à la page. Avec Firefox, ça marche. mais SeaMonkey avec la chaîne "Firefox" désactivée (par l'intermédiaire de "general.useragent.compatMode.firefox" défini sur false), ce n'est tout à coup pas le cas. Je ne vois absolument pas pourquoi Google autorise explicitement ce genre de choses uniquement pour Firefox et non pour n'importe quel Gecko, car de nombreux autres navigateurs de bureau basés sur Gecko sont également compatibles, y compris SeaMonkey.
Ceci renvoie l'adresse IP interne qui n'a pas été demandée. Mais, pour votre information, vous pouvez aussi le faire avec la commande hostname -I(capital 'i').
Redsandro
3
Le moyen le plus simple consiste à utiliser http://ifconfig.me/ , comme suggéré.
Sur cette page, vous saurez quelle commande utiliser pour quelles informations vous souhaitez récupérer.
De cette façon, vous pouvez le faire fonctionner sur votre réseau interne, si un nat ou un proxy est impliqué dans la communication et si vous souhaitez savoir de quelle adresse IP vous vous trouvez.
Pour éviter de faire appel à des sources externes, j’utilise normalement expect, pour établir une connexion telnet avec mon routeur et obtenir l’adresse IP de son interface publique. Voici un exemple de script attendu:
Bien sûr, cela est basé sur l'hypothèse que j'ai un accès administrateur au routeur, et que c'est un routeur basé sur Linux, avec la commande ifconfig disponible.
Si vous voulez trouver l’adresse IP externe sur votre routeur, vous devez demander au routeur lui-même son adresse wan ou demander à une personne extérieure de l’obtenir pour vous.
pour une manière manuelle, vous pouvez parcourir l’un des sites cités ci-dessus qui renverront l’IP de la requête entrante.
vous pouvez utiliser uniquement le shell pour vérifier votre adresse IP externe, également à l'aide de fournisseurs externes
#!/bin/bash
TCP_HOST="checkmyip.com"
TCP_PORT=80
exec 5<>/dev/tcp/"${TCP_HOST}"/"${TCP_PORT}"
echo -e "GET / HTTP/1.0\nHOST:${TCP_HOST}\n" >&5
while read -r line
do
case "$line" in
*"Your local IP address is"* )
line="${line#*Your local IP address is }"
line=${line%%</p>*}
echo "Your ip is: $line"
exec >&5-
exit
;;
esac
done <&5
Voici une autre alternative qui dépend des hôtes dont les activités sont résolues par la gestion d'une adresse IP dynamique plutôt que par des sites "de service public" susceptibles de disparaître ou de changer de format.
1) Enregistrez votre serveur sur l’un des nombreux services DNS dynamiques gratuits (par exemple, no-ip.com). Cela vous donnera une entrée DNS comme xxx.no-ip.org.
2) Installez l'outil de mise à jour dynamique du service (rapporte les modifications IP au service).
Pour obtenir l'adresse IP dans un script, procédez comme suit:
$external_ip = `dig +short xxx.no-ip.org`
Idéal dans le travail cron pour vérifier si une adresse IP dynamique a été modifiée et si certaines entrées de configuration doivent être modifiées.
Réponses:
curl ifconfig.me
curl ifconfig.me/ip
(pour juste l'ip)curl ifconfig.me/all
(pour plus d'informations, prend du temps)Pour plus de commandes, visitez: http://ifconfig.me/#cli_wrap
la source
curl http://checkip.amazonaws.com/
Vous pouvez demander
myip.opendns.com
. de OpenDNS.dig @208.67.222.220 myip.opendns.com
la source
dig @resolver1.opendns.com myip.opendns.com
. Ou sous Windows:nslookup myip.opendns.com resolver1.opendns.com
.dig @208.67.222.220 myip.opendns.com +short
pour obtenir directement l'adresse IP sans avoir à passer par toute la réponse.dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short
dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
dig -4 @resolver1.opendns.com -t a myip.opendns.com +short
Notez que ce qui précède ne fonctionne que pour IPv4 pour le moment (aucun de ces résolveurs ne semble même avoir IPv6 pour le moment, mais si vous omettez
-4
le texte explicite-t a
, vous risqueriez de le perdre à l’avenir (à l’exception de celui de Googletxt
, qui pourrait en réalité fonctionner pour IPv6 un jour, si correctement activé par Google)).Notez que cela
myip.opendns.com
ne peut être résolu que parresolver1.opendns.com
, et non pas avecauth1.opendns.com
- donc, ils semblent faire du piratage DNS et de l'homme au milieu de leur propre nom de domaine! Ainsi, vous ne pouvez pas l'utiliser pour trouver l'adresse IP d'un résolveur aléatoire, carresolver1.opendns.com
ne fait pas autorité pourmyip.opendns.com
.Notez que cela
o-o.myaddr.l.google.com
ressemble à l'approche la plus flexible et la plus durable; c'est même utile pour tester si votre résolveur DNS prend en charge l'extension EDNS0 expérimentale pour le sous-réseau client (que très peu de résolveurs ont le support):la source
dig +short AAAA myip.opendns.com @2620:0:ccc::2
.-4
ou-6
si vous avez besoin d’une version IP spécifique.Une réponse très simple si vous avez accès à Internet est:
N'oubliez pas qu'il peut être problématique de faire confiance à des sources tierces pour votre adresse IP, en particulier si ce que vous faites avec ces données a une signification particulière.
Une méthode plus fiable consiste à choisir un serveur DNS connu et digne de confiance (exécutant idéalement DNSSEC) et à interroger le nom d’hôte de la boîte avec celui-ci, à condition que votre serveur DNS contienne de telles entrées;
la source
J'ai écrit un service web simple et rapide pour cela.
Vous pouvez demander votre IPv4:
Ou IPv6:
Et l’API est documentée sur http://api.ident.me/
la source
Une manière: http://www.whatismyip.com/
la source
Si
alors vous pouvez simplement analyser la sortie de ifconfig pour les adresses IP des interfaces (la partie "inet addr:") pour obtenir la liste des adresses IP de toutes vos interfaces. L'adresse IP unique qui n'est pas dans la plage privée (voir http://en.wikipedia.org/wiki/IP_address#IPv4_private_addresses ) est votre adresse IP publique.
La même liste peut également être obtenue via
qui peut être plus facile à analyser.
Si vous ne disposez pas d'une connexion Internet directe (NAT, etc.), il est impossible de trouver votre adresse IP publique sans aide externe (car votre ordinateur ne le sait pas). Ensuite, vous devrez le faire comme dans les autres réponses.
la source
J'ai adopté une approche légèrement différente en utilisant le protocole STUN conçu pour NAT Traversal. Si vous utilisez Ubuntu, vous pouvez simplement installer le paquet "stun" en tapant:
Le paquet installe un serveur STUN dont vous n’auriez probablement pas besoin, mais il est également livré avec un client de test STUN que j’ai utilisé pour résoudre ce problème. Maintenant, vous pouvez récupérer votre adresse IP publique avec une commande (pas si simple):
Maintenant, ce qu'il fait est: stun contacte le serveur STUN public "stunserver.org" et reçoit une réponse avec votre adresse IP publique; le reste de la commande consiste simplement à filtrer l'adresse IP de la sortie.
la source
Une façon est, vous pouvez faire une demande à la page à
http://www.biranchi.com/ip.php
il retourne l'adresse IP de votre système
la source
text/html
convient pour ce que cette pseudo-API renvoie - ce n'est certainement pas XML ou JSON.text/plain
peut-être, mais c'est tout à fait utilisable commetext/html
.wget -q -O - http://wgetip.com/
Google affiche maintenant votre adresse IP publique: http://www.google.com/search?q=ip
la source
User-Agent
chaîne fournie à la page. Avec Firefox, ça marche. mais SeaMonkey avec la chaîne "Firefox" désactivée (par l'intermédiaire de "general.useragent.compatMode.firefox" défini sur false), ce n'est tout à coup pas le cas. Je ne vois absolument pas pourquoi Google autorise explicitement ce genre de choses uniquement pour Firefox et non pour n'importe quel Gecko, car de nombreux autres navigateurs de bureau basés sur Gecko sont également compatibles, y compris SeaMonkey.D'accord ... Je sais que c'est bien après coup et probablement même pas la peine de poster, mais voici ma solution de travail.
Sympa et simple.
la source
hostname -I
(capital 'i').Le moyen le plus simple consiste à utiliser http://ifconfig.me/ , comme suggéré.
Sur cette page, vous saurez quelle commande utiliser pour quelles informations vous souhaitez récupérer.
Pour IP:
ouPour le nom d'hôte public:
Pour toutes les informations dans un fichier XML:
etc ... il suffit de vérifier http://ifconfig.me
la source
Je le fais souvent, et à partir de nombreux appareils, j'ai donc créé mes deux services sur un serveur:
Fichier php à la racine d'un serveur web:
Utilisation sur un shell:
travaille également avec ipv6:
Avec netcat:
Sur un routeur Cisco:
piratage rapide avec un serveur telnet personnalisé: xinetd spawning / usr / bin / env:
puis par telnet:
fonctionne de la même manière avec un routeur:
De cette façon, vous pouvez le faire fonctionner sur votre réseau interne, si un nat ou un proxy est impliqué dans la communication et si vous souhaitez savoir de quelle adresse IP vous vous trouvez.
Il ne nécessite aucun service tiers.
la source
Pour éviter de faire appel à des sources externes, j’utilise normalement expect, pour établir une connexion telnet avec mon routeur et obtenir l’adresse IP de son interface publique. Voici un exemple de script attendu:
J'exécute ensuite le script ci-dessus comme ceci pour obtenir l'adresse IP publique:
Bien sûr, cela est basé sur l'hypothèse que j'ai un accès administrateur au routeur, et que c'est un routeur basé sur Linux, avec la commande ifconfig disponible.
la source
Duplicata de beaucoup d'autres questions (d'où mon -1 vote).
la source
Une solution de script shell simple peut être trouvée ici:
http://bash.cyberciti.biz/misc-shell/read-local-ip-address/
Fonctionne sur Linux, FreeBSD, SunOS et Apple Darwin (avec une modification mineure).
la source
Si vous voulez trouver l’adresse IP externe sur votre routeur, vous devez demander au routeur lui-même son adresse wan ou demander à une personne extérieure de l’obtenir pour vous.
pour une manière manuelle, vous pouvez parcourir l’un des sites cités ci-dessus qui renverront l’IP de la requête entrante.
Pour un moyen automatisé, vous pouvez essayer:
qui vous donnera la ligne contenant l'adresse IP sur la réponse http, puis l'analyser avec sed, awk, etc.
la source
vous pouvez utiliser uniquement le shell pour vérifier votre adresse IP externe, également à l'aide de fournisseurs externes
sortie
la source
la source
Je fais ça. Cela me donne juste l'adresse IP sans aucune implication de tiers.
ip addr show | grep eth0 | grep inet | tr -s "" | cut -f3 -d "" | couper -f1 -d "/"
la source
la source
Voici une autre alternative qui dépend des hôtes dont les activités sont résolues par la gestion d'une adresse IP dynamique plutôt que par des sites "de service public" susceptibles de disparaître ou de changer de format.
1) Enregistrez votre serveur sur l’un des nombreux services DNS dynamiques gratuits (par exemple, no-ip.com). Cela vous donnera une entrée DNS comme xxx.no-ip.org.
2) Installez l'outil de mise à jour dynamique du service (rapporte les modifications IP au service).
Pour obtenir l'adresse IP dans un script, procédez comme suit:
$external_ip = `dig +short xxx.no-ip.org`
Idéal dans le travail cron pour vérifier si une adresse IP dynamique a été modifiée et si certaines entrées de configuration doivent être modifiées.
la source
Sous OS X, il existe deux solutions simples pour obtenir à la fois l'IP privée et publique (avec un code bonus si vous utilisez LaunchBar).
IP privée
Script de la barre de lancement
IP publique
Script de la barre de lancement
la source