Как узнать географическое расположение по IP адресу из командной строки

Если вы хотите выяснить где физически на земле размещён определённый IP адрес (или веб-сайт), вы можете попробовать несколько онлайн поисковых служб GeoIP (например, geoiptool.com). Эти онлайн службы, в основном, работают на доступной бесплатно базе данных GeoIP, вроде такой как MaxMind. Кроме использования таких веб служб, есть другие способы сделать запрос к GeoIP базе данных, в особенности через командную строку Linux.

В этой инструкции я собираюсь описать, как найти расположение IP адреса из командной строки в Linux.

Первый метод

Первый метод — это использование инструмента geoiplookup, который является клиентом командной строки для GeoIP базы данных от MaxMind. geoiplookup позволяет посмотреть географическую или сетевую информации по IP адресу (или имени хоста). Вы можете установить этот инструмент (вместе с бесплатной базой данных GeoIP, использующей этот инструмент) как показано ниже.

Для установки geoiplookup в Debian, Ubuntu или Linux Mint:

$ sudo apt-get install geoip-bin

Для установки geoiplookup в Fedora:

$ sudo yum install geoip

Для установки geoiplookup в CentOS, во-первых включите репозиторий EPEL, а затем используйте yum команду:

$ sudo yum install geoip

По умолчанию, с установкой geoiplookup устанавливается файл базы данных GeoIP.dat, который размещён в /usr/share/GeoIP. С этой базой данных вы можете узнать информацию только о стране.

$ geoiplookup 27.145.177.75
GeoIP Country Edition: TH, Thailand

Вы можете загрузить дополнительные базы данных GeoIP с MaxMind, которые дадут вам более детальную информацию об IP адресах, в дополнение к информации о стране. Вы также можете загрузить более свежий файл GeoIP.dat с этого сайта. Это рекомендуется, т. к. GeoIP.dat может быть уже устаревшим к моменту его установки вами из репозиториев Linux. База данных GeoIP, доступная на веб-сайте MaxMind, обновляется каждый месяц.

Для установки дополнительных баз данных GeoIP с MaxMind, сделайте следующее. Вы можете установить ежемесячное задание для cron, чтобы автоматизировать этот процесс.

$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
$ wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
$ wget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
$ gunzip GeoIP.dat.gz
$ gunzip GeoIPASNum.dat.gz
$ gunzip GeoLiteCity.dat.gz
$ sudo cp GeoIP.dat GeoIPASNum.dat GeoLiteCity.dat /usr/share/GeoIP/

Сейчас, если вы повторно запустите команду geoiplookup, вы увидите дополнительно информацию об AS номере IP адреса. Это, в общих чертах, говорит вам административную информацию, которая относится к домену, IP.

$ geoiplookup 27.145.177.75
GeoIP Country Edition: TH, Thailand
GeoIP ASNum Edition: AS17552 True Internet Co.,Ltd.

Когда запускаете без каких либо параметров, инструмент geoiplookup автоматически использует только GeoIP.dat и GeoIPASNum.dat, но не использует GeoLiteCity.dat. Последняя может дать вам информацию о городе.

Для получения информации о городе, явно скажите geoiplookup использовать базу данных GeoLiteCity.dat.

$ geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat 27.145.177.75
GeoIP City Edition, Rev 1: TH, N/A, N/A, N/A, N/A, 13.750000, 100.466698, 0, 0

Вывод, обычно, включает государство, город, почтовый код, высоту и долготу. В моём конкретном случае многие данные оказались неопределёнными. У вас результат будет лучше. Точность предполагаемого расположения варьируется в разных странах и сетях. Например, результаты геолокации, как правило, более точны для широкополосных IP адресов, но менее точны для мобильных сетей.

Второй метод

Если вы не хотите хлопот с установкой и обновлением баз данных GeoIP, вы можете попробовать онлайн сервис ipinfo.io. В отличие от других сервисов, ipinfo.io обеспечивает геолокационные API, основанные на JSON, поэтому вы можете с лёгкостью осуществить геолокацию из командной строки, используя инструмент вроде curl.

$ curl ipinfo.io/27.145.177.75

02

Обратите внимание, что доступ к их API ограничен 1,000 API запросами в день.

Дополнение

Читатели оригинального поста (на англоязычном ресурсе), напомнили о команде whois. Используется она, например, так (вместо IP адреса можно вводить название веб-сайта).

whois 27.145.177.75

Если ещё не установлена, то выполните

sudo apt-get install whois

И ещё один из читателей придумал графический интерфейс:

#!/bin/bash
IP=`/usr/bin/zenity --entry 
--width=300 
--title="Нахождение адреса по IP" 
--text="Пожалуйста, введите IP:"`
if [ $? -eq 1 ];
then
exit -1
fi
curl ipinfo.io/${IP} | zenity --text-info --width 530 --height 350

Оставить ответ

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