Вы, наверное, замечали в Интернете различные сервисы, которые автоматически примерно определяют, где вы находитесь. От сервисов потоковой передачи музыки и видео до интернет-магазинов — эти сервисы используют метод, называемый IP-геолокацией, который сопоставляет ваше приблизительное физическое местоположение с используемым вами IP-адресом. Каждый раз, когда вы подключаетесь к Интернету, вашему устройству присваивается IP-адрес из пула адресов, выделенных различным телекоммуникационным компаниям. Принцип работы этих адресов может быть довольно сложным, но поскольку они назначаются блоками, можно создать базу данных, которая сопоставляет блок адресов со страной или даже с определенной областью или городом.
Хорошая новость заключается в том, что поиск по геолокации предназначен не только для крупных корпоративных и мега-сайтов. Существует ряд бесплатных онлайн-сервисов и даже инструмент командной строки для Linux, который позволяет вам искать IP-адреса и получать информацию о том, где этот адрес назначен. Это может быть очень полезно, когда вы расследуете подозрительное электронное письмо или странные комментарии, оставленные в блоге. Это также полезно при использовании служб, маскирующих ваш IP-адрес, например VPN, чтобы гарантировать, что они работают так, как заявлено.
Чтобы найти IP-адрес из командной строки Linux, вам необходимо установить инструмент «geoiplookup». Для Ubuntu и Raspbian используйте:
sudo apt-get install geoip-bin
Чтобы найти IP-адрес, введите следующее:
geoiplookup 8.8.4.4
![поиск геолокации для IP-адреса 8.8.4.4](https://saintist.ru/wp-content/uploads/2024/05/geoiplookup-8844.jpg)
Замените 8.8.4.4 адресом, который вы хотите найти. В этом примере адрес 8.8.4.4 (который является одним из DNS-серверов Google) правильно отображается как адрес из США.
База данных, поставляемая с вашим дистрибутивом Linux, вероятно, устарела; вы можете проверить, когда он был создан, используя флаг -v
:
geoiplookup -v 8.8.4.4
![подробный поиск по геолокации](https://saintist.ru/wp-content/uploads/2024/05/geoiplookup-v-8844.jpg)
В данном случае мы видим, что база данных была создана в августе 2013 года.
База данных геолокации предоставлена MaxMind, и компания обновляет свои базы данных каждый месяц. Вы можете обновить базу данных, загрузив последние файлы непосредственно с MaxMind.com.
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz gunzip GeoIP.dat.gz sudo cp GeoIP.dat /usr/share/GeoIP/
Теперь вы можете снова запросить базу данных о дате ее сборки:
geoiplookup -v 8.8.4.4
![подробный поиск по геолокации 2](https://saintist.ru/wp-content/uploads/2024/05/geoiplookup-v2-8844.jpg)
Теперь инструмент сообщает, что база данных была создана в апреле 2014 года.
MaxMind также предоставляет базу данных городов, что во многих случаях обеспечивает большую точность. Чтобы установить его, используйте следующие команды, чтобы загрузить базу данных и скопировать ее в каталог GeoIP:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip GeoLiteCity.dat.gz sudo cp GeoLiteCity.dat /usr/share/GeoIP/
Чтобы получить информацию о городе, вам нужно указать инструменту «geoiplookup
» использовать базу данных города:
geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 71.3.9.242
![поиск по геолокации в базе данных города](https://saintist.ru/wp-content/uploads/2024/05/geoiplookup-7139242.jpg)
На этот раз геопоиск сообщает нам, что адрес находится во Флориде, а точнее в Саммерфилде, штат Флорида.
Онлайн-сервис
Помимо инструмента геопоиска, существует ряд онлайн-сервисов, которые могут предоставить информацию о геолокации. Например, если вы откроете geoiptool.com в своем веб-браузере, сайт предоставит вам информацию о вашем текущем местоположении.
![поиск геолокации с помощью geoiptool](https://saintist.ru/wp-content/uploads/2024/05/geoiptool.com-700px.jpg)
На другом сайте freegeoip.net есть API, предназначенный для использования в серверной части веб-сайтов или в приложениях. Однако его также можно использовать из командной строки, используя «curl
». Сначала убедитесь, что у вас установлено «curl
»:
sudo apt-get install curl
Чтобы получить информацию о геолокации в формате XML, используйте:
curl freegeoip.net/xml/72.4.9.242
![поиск геолокации с помощью API freegeoip](https://saintist.ru/wp-content/uploads/2024/05/freegeoip.net-7249242.jpg)
Вывод XML показывает, что IP-адрес 72.4.9.242 используется в Эвансвилле, штат Индиана. Вы также можете получить те же данные в формате CSV или JSON, изменив часть «xml» URL-адреса на «csv» или «json» соответственно.
Инструмент геопоиска и онлайн-сервисы могут быть очень полезны. Если у вас есть вопросы по их использованию, задавайте их в разделе комментариев ниже.