Domanda

Come posso trovare l'IP pubblico per il mio lavoro in rete in Python?

È stato utile?

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:

http://wtfismyip.com/json

Legalo alle solite cose di urllib come altri hanno dimostrato.

C'è anche:

http://www.networksecuritytoolkit.org/nst/tools/ip.php

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))

Riferimento

Questo è semplice come

>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top