В Python, получение дополнительной информации об IP-адресе

Я знаю о gethostbyaddr в Python, и это несколько полезно для меня. Я хотел бы получить еще больше информации об IP-адресе, которую можно найти на различных веб-сайтах, таких как, кто размещает этот IP-адрес, страна происхождения,... и т. Д. Мне нужно сделать это программно.

Существуют ли какие-либо встроенные команды для Python или мне нужен доступ к какой-либо базе данных, содержащей информацию такого типа, или есть какие-либо API-интерфейсы Python? Python не является моим родным языком, поэтому я не так хорошо знаю, как можно было бы подойти к такой проблеме в Python.

2 ответа

Решение

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

Если вам нужна только географическая информация, используйте pygeoip. Он сопоставляет IP-адрес с местоположением, просматривая его в базе данных, например, предоставленной MaxMind. Обратите внимание, что бесплатные версии "Lite" дадут вам только приблизительное представление, и ошибки в 20–50 км не редкость.

Хорошо, вот мой ответ. Я собираюсь поработать над очисткой для общего пользования Python 3.x версии pywhois, которую я имею на своей машине, и, надеюсь, на следующей неделе я отправлю свой код в хранилище Subversion. Из IP-адресов, которые я использую, у меня примерно 78% успеха при получении информации, сначала применив gethostbyaddr к IP-адресу, как предложил phihag, и затем применив его через pywhois. Я позволю читателю решить для себя, является ли этот показатель достаточно высоким для их конкретного применения.

Другие вопросы по тегам