2010-09-01 3 views
1

мне нужно, чтобы получить IP-адрес запрашиваемого хост с использованием urllib2 как:Есть ли у python urllib2 функция gethostbyname?

import urllib2 

req = urllib2.Request('http://www.example.com/') 

r = urllib2.urlopen(req) 

Существует ли какая-либо функция, такие как ip = urllib2.gethostbyname(req)?

ответ

1

Функция socket.gethostbyname, которая разрешит имена хостов, если это то, что вы имеете в виду.

Хотя, если у вас уже есть соединение, сделанное urllib2, то получите хост назначения через your_request.get_host().

+0

У вас нет. Сначала вы создаете запрос с помощью открывающего устройства, а затем вызываете 'get_host' в этом объекте запроса. Пока вы на самом деле не подключены, вы не можете быть уверены, на какой ip будет разрешено имя. – viraptor

+0

Метод get_host просто возвращает ссылку, а не IP, кажется, мне придется искать другие проблемы. Мне было интересно, есть ли какой-нибудь способ получить удаленный IP-адрес веб-сайта с помощью прокси-сервера? – sultan

+0

Вы не можете точно знать, к чему подключается прокси. Если для имени, к которому вы подключаетесь, назначено более одного ip, один из них будет выбран случайным образом. – viraptor

2

Вы можете использовать:

import socket 
socket.gethostbyname('www.google.com') 

это возвращает IP-адрес хоста. Не пропускайте 'http://www.google.com'. Это не будет работать.

Смежные вопросы