Когда речь идет об информационной безопасности, задача определения местоположение IP-адреса становится очень актуальной. Такая информация включает в себя страну, город, адрес, а в некоторых случаях даже координаты широты и долготы. В статье рассмотрим способ определения геолокации IP-адреса с помощью сервиса IPinfo на Python.
Еще по теме: Библиотеки Python для работы с местоположением
Местоположение по IP-адресу на Python
Существует множество способов для реализации данной задачи, но в этой статье поговорим про сервис IPinfo. Для начала необходимо перейти на сайт и зарегистрироваться чтобы получить токен на IPinfo.
Следует отметить, что бесплатная версия этого сервиса ограничена 50 000 запросами в месяц, что, скорее всего, более чем достаточно для ваших нужд. После регистрации нужно перейти в личный кабинет и скопировать свой токен доступа.
Для использования IPinfo в Python потребуется начать с установки библиотеки, предоставляющей оболочку для работы с этим сервисом. Для этого вам нужно выполнить команду:
1 |
$ pip install ipinfo |
Далее создайте новый файл Python с названием, например, get_ip_info.py, и добавьте в него следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import ipinfo import sys # Получаем IP-адрес из командной строки try: ip_address = sys.argv[1] except IndexError: ip_address = None # Вставьте свой токен доступа сюда access_token = '' # Создаем объект для работы с сервисом IPinfo handler = ipinfo.getHandler(access_token) # Получаем информацию об IP-адресе details = handler.getDetails(ip_address) # Выводим полученные данные for key, value in details.all.items(): print(f"{key}: {value}") |
Этот код позволяет создать обработчик с использованием предоставленного токена доступа и, затем, получить информацию о местоположении по заданному IP-адресу. Обратите внимание, что вы должны заменить access_token на свой токен доступа, который вы получите в своем личном кабинете на IPinfo.
Теперь давайте применим этот код на практике:
1 |
$ python get_ip_info.py 43.250.192.0 |
Результат будет примерно таким:
1 2 3 4 5 6 7 8 9 10 11 |
ip: 43.250.192.0 city: Singapore region: Singapore country: SG loc: 1.2897,103.8501 org: AS16509 Amazon.com, Inc. postal: 018989 timezone: Asia/Singapore country_name: Singapore latitude: 1.2897 longitude: 103.8501 |
Если вы не передадите IP-адрес в аргументах командной строки, скрипт просто использует IP-адрес того компьютера, на котором он запущен. Это может быть полезно, например, при запуске скрипта на удаленной машине.
Теперь вы знаете, как определить местоположение IP-адреса в Python с помощью сервиса IPinfo.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Работа с API в Python
- Поиск открытых FTP с помощью ftplib на Python
- Как отправить поддельные СМС используя Python