Trouver une adresse IP publique en Python?
-
03-07-2019 - |
Question
Comment puis-je trouver le public face à l'IP pour mon travail réseau en Python?
La solution
Ceci récupérera votre adresse IP distante
import urllib
ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read()
Si vous ne voulez pas vous fier à quelqu'un d'autre, chargez simplement quelque chose comme ce script PHP:
<?php echo Ceci récupérera votre adresse IP distante
import urllib
ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read()
Si vous ne voulez pas vous fier à quelqu'un d'autre, chargez simplement quelque chose comme ce script PHP:
<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
%>
et modifiez l'URL dans le Python ou si vous préférez ASP:
<*>
Remarque: je ne connais pas ASP, mais j’ai pensé qu’il serait peut-être utile d’avoir ici alors j’ai cherché sur Google.
SERVER['REMOTE_ADDR']; ?>
et modifiez l'URL dans le Python ou si vous préférez ASP:
<*>Remarque: je ne connais pas ASP, mais j’ai pensé qu’il serait peut-être utile d’avoir ici alors j’ai cherché sur Google.
Autres conseils
whatismyip.org est préférable ... il renvoie simplement l'adresse IP sous forme de texte en clair, sans foutaises superflues.
import urllib
ip = urllib.urlopen('http://whatismyip.org').read()
Mais oui, il est impossible de le faire facilement sans s’appuyer sur quelque chose en dehors du réseau lui-même.
https://api.ipify.org/?format=json est plutôt simple transférer
peut être analysé en exécutant simplement requests.get ("https: //api.ipify.org/? format = json") .json () ['ip']
Si cela ne vous dérange pas, explétives, alors essayez:
Intégrez-le dans le matériau habituel d'urllib, comme d'autres l'ont montré.
Il y a aussi:
import urllib2
text = urllib2.urlopen('http://www.whatismyip.org').read()
urlRE=re.findall('[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}',text)
urlRE
['146.148.123.123']
Essayez de mettre n'importe quel "findmyipsite" que vous pouvez trouver dans une liste et de le parcourir pour le comparer. Celui-ci semble bien fonctionner.
import requests
r = requests.get(r'http://jsonip.com')
# r = requests.get(r'https://ifconfig.co/json')
ip= r.json()['ip']
print('Your IP is {}'.format(ip))
C’est aussi simple que
>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'