Как выполнить поиск геолокации IP-адреса в Linux

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

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

Чтобы найти IP-адрес из командной строки Linux, вам необходимо установить инструмент "geoiplookup". Для Ubuntu и Raspbian используйте:

Чтобы найти IP-адрес, введите следующее:

поиск геолокации для IP-адреса 8.8.4.4

Замените 8.8.4.4 адресом, который вы хотите найти. В этом примере адрес 8.8.4.4 (который является одним из DNS-серверов Google) правильно указан как адрес из США.

База данных, поставляемая с вашим дистрибутивом Linux, вероятно, устарела; вы можете проверить, когда он был создан, используя флаг -v:

подробный поиск геолокации

В этом случае мы видим, что база данных была создана в августе 2013 года.

База данных геолокации предоставляется MaxMind, и компания обновляет свои базы данных каждый месяц. Вы можете обновить базу данных, загрузив самые свежие файлы прямо с MaxMind.com.

Теперь вы можете снова запросить дату сборки в базе данных:

подробный поиск геолокации 2

Теперь инструмент сообщает, что база данных была создана в апреле 2014 года.

MaxMind также предоставляет базу данных City, которая во многих случаях дает большую точность. Чтобы установить его, используйте следующие команды, чтобы загрузить базу данных и скопировать ее в каталог GeoIP:

Чтобы получить информацию о городе, вам нужно указать инструменту " geoiplookup" использовать базу данных города:

поиск геолокации база данных города

На этот раз geoiplookup сообщает нам, что адрес находится во Флориде, а точнее в Саммерфилде, штат Флорида.

Интернет Сервис

Помимо инструмента geoiplookup, существует ряд онлайн-сервисов, которые могут предоставить информацию о геолокации. Например, если вы откроете geoiptool.com в своем веб-браузере, сайт предоставит вам информацию о вашем текущем местоположении.

поиск геолокации с помощью geoiptool

Другой сайт freegeoip.net имеет API, который предназначен для использования в серверной части веб-сайтов или из приложений. Однако его также можно использовать из командной строки с помощью " curl". Во-первых, убедитесь, что у вас установлен " curl":

Чтобы получить информацию о геолокации в формате XML, используйте:

поиск геолокации с помощью freegeoip API

Выходные данные XML показывают, что IP-адрес 72.4.9.242 используется в Эвансвилле, штат Индиана. Вы также можете получить те же данные в формате CSV или JSON, изменив часть "xml" URL-адреса на "csv" или "json" соответственно.

Инструмент geoiplookup и онлайн-сервисы могут быть очень полезными. Если у вас есть какие-либо вопросы об их использовании, задавайте их в разделе комментариев ниже.

7 комментариев

  1. Как отключить возможность сайта находить меня?

  2. Привет,

    Это хороший вопрос. Лучше всего использовать VPN, например foxyvpn.com, или пакет для обеспечения конфиденциальности, например hide-my-ip.com.

    Гэри

  3. Привет! Это сообщение не могло быть написано лучше! Чтение этого поста напоминает мне мой хороший fbadgcebedbefgek

  4. Также проверьте http://ipinfo.io API, например:

    $ curl ipinfo.io
    {
    "ip": "67.188.232.131",
    "имя хоста": "c-67-188-232-131.hsd1.ca.comcast.net",
    "город": "Маунтин-Вью",
    "регион": "Калифорния",
    "страна": "США",
    "loc": "37.4192, -122.0574",
    "Org": "AS7922 Comcast Cable Communications, Inc.",
    "postal": "94043"
    }


    Бен, спасибо за указатель на ipinfo.io. Я рассматривал эту услугу, когда писал статью, но ipinfo.io ограничен скоростью до 1000 запросов API в день, тогда как freegeoip.net ограничен до 10 000 запросов в час, поэтому я выбрал последнее.

  5. Или, скорее, чем делать это из командной строки, вы можете просто посетить: http://geoipinfo.org/. Используя вкладку интерактивной карты, вы также получите удобочитаемый ближайший почтовый адрес, связанный с запрошенным IP-адресом.

  6. Привет всем! как мне найти несколько IP-адресов за раз. например, диапазон IP-адресов из журнала squid access.log, который нельзя сделать вручную. заранее большое спасибо

Комментарии закрыты.