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 ?
Réponses
Trop de publicités?De nombreux routeurs domestiques peuvent être interrogés par UPnP :
curl "http://fritz.box:49000/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" -s
Ensuite, tapez l'adresse IP de la réponse.
grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'
Si vous utilisez DD-WRT alors cela fonctionne pour moi :
curl -s 192.168.1.1 | grep "ipinfo" | awk -v FS="(IP: |</span)" '{print $2}'
ou
curl -s -u your_ddwrt_username:your_ddwrt_password http://192.168.1.1 | grep "ipinfo" | awk -v FS="(IP: |</span)" '{print $2}'
-
Où 192.168.1.1 est l'adresse IP de la passerelle/du réseau local du routeur DD-WRT.
-
En -s signifie silencieux (c'est-à-dire qu'il ne montre pas les informations de progression de curl).
-
Oh, je devrais mentionner que j'utilise ce qui précède avec "DD-WRT v24-sp2 (01/04/15) std" .
Je suis peut-être un peu en retard, mais l'inxi peut le faire assez facilement.
Installer inxi
sudo apt install inxi
Ensuite, exécutez la commande suivante
inxi -i
Exemple avec mes informations bloquées en utilisant le z
pour le copier-coller sur des sites comme celui-ci :
~$ inxi -iz
Network: Card: NVIDIA MCP77 Ethernet driver: forcedeth
IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter>
WAN IP: <filter>
IF: eth0 ip-v4: <filter> ip-v6-link: N/A
Où il est dit <filter>
est l'endroit où votre IP WAN, IPv4, adresse MAC etc. apparaîtra
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)
1 votes
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 simplement les réponses suivantes dans une crontab avec
notify-send
.0 votes
De bonnes solutions ci-dessous. Pour Centos, utilisez :
ifconfig eth1 | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*inet *([^ ]+).*/\2/p}'
où eth1 est le périphérique réseau concerné, vous pouvez omettre la chaîne 'et1' pour afficher les adresses IP de tous les adaptateurs. Au lieu de\2
vous pouvez écrire\1 \2
pour afficher les noms de chaque adaptateur également.0 votes
Aucune des réponses ne montre l'approche correcte. Comme je n'ai pas assez de réputation pour poster une réponse, je vais poster un commentaire sur la façon de l'obtenir sans dépendre de services externes. Il suffit d'exécuter sur le terminal
$ hostname --ip-address