Trovare un indirizzo IP pubblico in Python?
-
03-07-2019 - |
Domanda
Come posso trovare l'IP pubblico per il mio lavoro in rete in Python?
Soluzione
Questo recupererà il tuo indirizzo IP remoto
import urllib
ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read()
Se non vuoi fare affidamento su qualcun altro, carica semplicemente qualcosa come questo script PHP:
<?php echo Questo recupererà il tuo indirizzo IP remoto
import urllib
ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read()
Se non vuoi fare affidamento su qualcun altro, carica semplicemente qualcosa come questo script PHP:
<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
%>
e cambia l'URL in Python o se preferisci ASP:
<*>
Nota: non conosco ASP, ma ho pensato che potesse essere utile averlo qui, quindi ho cercato su Google
SERVER['REMOTE_ADDR']; ?>
e cambia l'URL in Python o se preferisci ASP:
<*>Nota: non conosco ASP, ma ho pensato che potesse essere utile averlo qui, quindi ho cercato su Google
Altri suggerimenti
whatismyip.org è meglio ... restituisce semplicemente l'ip come testo in chiaro senza stronzate estranee.
import urllib
ip = urllib.urlopen('http://whatismyip.org').read()
Ma sì, è impossibile farlo facilmente senza fare affidamento su qualcosa al di fuori della rete stessa.
https://api.ipify.org/?format=json è piuttosto semplice avanti
può essere analizzato semplicemente eseguendo request.get (" https: //api.ipify.org/? format = json ") .json () ['ip']
Se non ti dispiace, allora prova:
Legalo alle solite cose di urllib come altri hanno dimostrato.
C'è anche:
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']
Prova a mettere qualsiasi "findmyipsite" che puoi trovare in un elenco e iterando attraverso di essi per il confronto. Questo sembra funzionare bene.
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))
Questo è semplice come
>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'