Найти тему
Аноним из космоса

Как найти точное местоположение любого IP-адреса

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

Теперь вы можете найти расположение этого IP-адреса без вызова в суд или санкции на обыск.

Компания MaxMind ведет базу данных о местонахождении каждого IP-адреса на планете вместе с координатами GPS, кодом города, почтовым индексом и страной. Эта база данных не находится в типичном формате реляционной базы данных, а это скорее обычный текстовый файл. MaxMind берет лицензионный сбор за пользование их базой данных в размере 370 долларов США на каждый сайт и 90 долларов США в месяц (или 1360 долларов США в год) за получение обновлений этой базы данных. У их программного обеспечения красивый и понятный интерфейс, который дает возможность пользователям делать запросы к базе данных достаточно просто.

MaxMind также предоставляет бесплатную версию этой базы данных для разработчиков, но без каких-либо средств для ее чтения. Бесплатная версия менее точная, чем коммерческая. Все, что нужно для определения местоположения нужного IP-адреса — это программа для чтения этих данных.

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

Шаг 1. Запустите Kali и откройте терминал

Первым шагом, конечно же, является запуск нашей надежной системы Kali или, в данном случае, любого дистрибутива Linux. Затем откройте терминал.

Примечание. Будьте осторожны при использовании приведенных ниже команд. Форматирование этой статьи создает несколько пробелов для растягивания текста для соответствия полям. Смотрите на скриншоты, чтобы иметь представление о том, как эти команды выглядят на самом деле.

Шаг 2. Скачайте базу данных

Теперь нам нужно скачать базу данных с сайта MaxMind. Для этого введите в терминал следующую команду:

kali> wget -N -q http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

Затем нужно разархивировать ее:

kali> gzip -d GeoLiteCity.dat.gz

Теперь давайте проверим, что база данных находится там, где нужно, отобразив содержание текущей папки:

kali > ls -alh GeoLiteCity.dat

Шаг 3. Скачайте и установите Pygeoip

Установим скрипт Python для чтения базы данных — pygeoip. Мы можем скачать его, введя следующее:

kali> wget http://pygeoip.googlecode.com/files/pygeoip-0.1.3.zip

-2

Затем разархивируйте его:

kali> unzip pygeoip-0.1.3.zip

-3

Скачаем некоторые инструменты установки в каталог pygeoip.

kali> cd /pygeoip-0.1.3
kali> wget http://svn.python.org/projects/sandbox/trunk/setuptools/ez_setup.py
kali> wget http://pypi.python.org/packages/2.5/s/setuptools-0.6c11-py2.5.egg

-4

Давайте теперь перейдем, а затем создадим и установим инструменты установки.

kali> mv setuptools-0.6c11-py2.5.egg setuptools-0.7a1-py2.5.egg
kali> python setup.py build
kali> python setup.py install

-5

Нам нужно переместить базу данных в каталог pygeoip, чтобы скрипт мог получить к нему доступ, не используя полный путь.

kali> mv GeoLiteCity.dat /pygeoip-0.1.3/GeoLiteCity.dat

Шаг 4. Запросы к базе данных

Теперь, когда у нас есть база данных, а скрипт pygeoip скачан и установлен, мы можем начать делать запросы к этой базе данных с помощью pygeoip.

Во-первых, нам нужно запустить оболочку Python.

kali> python

Когда вы это сделаете, вас поприветствует тройная угловая скобка >>>, указывающая, что вы сейчас находитесь в интерактивной оболочке python. Давайте импортируем модуль и создадим экземпляр класса.

>>> import pygeoip
>>> gip = pygeopip.GeoIP('GeoLiteCity.dat')

Теперь мы можем сделать наш запрос. Посмотрим, где находится Google.

>>>rec = gip.record_by_addr('64.233.161.99')
>>>for key.val in rec.items():
... print «%s: %s» %(key,val)
...

Обратите внимание, что важно следить за отступами у команды print. В противном случае, вы получите ошибку.

-6

Как вы видите, мы смогли найти IP-адрес Google в Mountain View, CA с региональным кодом 650, почтовым индексом 94043, долгота -122.0574 и широту 37.4192. Неплохо! Теперь давайте попробуем найти IP-адрес cnn.com.

-7

Еще раз, сочетание этой базы данных и скрипта pygeoip может дать нам информацию о местоположении сервера CNN по его IP-адресу.

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