Найти общедоступный IP-адрес в Python? - PullRequest
19 голосов
/ 03 октября 2008

Как я могу найти общедоступный IP для моей сетевой работы на Python?

Ответы [ 8 ]

14 голосов
/ 03 октября 2008

Получит ваш удаленный IP-адрес

import urllib
ip = urllib.urlopen('http://automation.whatismyip.com/n09230945.asp').read()

Если вы не хотите полагаться на кого-то другого, просто загрузите что-то вроде этого PHP-скрипта:

<?php echo $_SERVER['REMOTE_ADDR']; ?>

и измените URL в Python или, если вы предпочитаете ASP:

<%
Dim UserIPAddress
UserIPAddress = Request.ServerVariables("REMOTE_ADDR")
%>

Примечание: я не знаю ASP, но я подумал, что было бы полезно иметь здесь, поэтому я погуглил.

7 голосов
/ 03 октября 2008

whatismyip.org лучше ... он просто отбрасывает ip как открытый текст без посторонней чуши.

import urllib
ip = urllib.urlopen('http://whatismyip.org').read()

Но да, это легко сделать, не полагаясь на что-то вне самой сети.

5 голосов
/ 18 июля 2016

https://api.ipify.org/?format=json довольно просто

можно проанализировать, просто запустив requests.get("https://api.ipify.org/?format=json").json()['ip']

4 голосов
/ 30 апреля 2013

Если вы не возражаете против ругательств, попробуйте:

http://wtfismyip.com/json

Свяжите это в обычном материале urllib, как показали другие.

Также есть:

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

2 голосов
/ 04 апреля 2016
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']

Попробуйте поместить любой «findmyipsite», который вы можете найти, в список и перебрать их для сравнения. Кажется, этот работает хорошо.

1 голос
/ 29 ноября 2017
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))

Ссылка

1 голос
/ 01 июня 2012

Во всех ответах, которые я вижу выше, будет указан IP-адрес любого используемого веб-прокси, а не обязательно общедоступный IP-адрес вашей системы (все, что не запускается через веб-прокси, может иметь совершенно другой IP-адрес).

0 голосов
/ 19 июля 2016

Это просто как

>>> import urllib
>>> urllib.urlopen('http://icanhazip.com/').read().strip('\n')
'xx.xx.xx.xx'
...