Чтобы получить страну, связанную с IP-адресом, вы можете использовать различные методы. Вот несколько подходов с примерами кода на разных языках программирования:
-
Python с использованием библиотеки
geoip2
:import geoip2.database def get_country_from_ip(ip_address): reader = geoip2.database.Reader('GeoLite2-Country.mmdb') response = reader.country(ip_address) return response.country.name ip_address = '123.456.789.0' country = get_country_from_ip(ip_address) print(country)
-
PHP с использованием пакета
geoip2/geoip2
:require 'vendor/autoload.php'; use GeoIp2\Database\Reader; function getCountryFromIP($ipAddress) { $reader = new Reader('GeoLite2-Country.mmdb'); $response = $reader->country($ipAddress); return $response->country->name; } $ipAddress = '123.456.789.0'; $country = getCountryFromIP($ipAddress); echo $country;
-
Node.js с использованием пакета
geoip-lite
:const geoip = require('geoip-lite'); function getCountryFromIP(ipAddress) { const geo = geoip.lookup(ipAddress); return geo ? geo.country : null; } const ipAddress = '123.456.789.0'; const country = getCountryFromIP(ipAddress); console.log(country);
-
Ruby с использованием драгоценного камня
maxminddb
:require 'maxminddb' def get_country_from_ip(ip_address) reader = MaxMindDB.new('GeoLite2-Country.mmdb') response = reader.lookup(ip_address) return response['country']['names']['en'] end ip_address = '123.456.789.0' country = get_country_from_ip(ip_address) puts country
В этих примерах предполагается, что у вас есть файл базы данных GeoIP (например, GeoLite2-Country.mmdb
), который содержит сопоставление IP-адресов и стран. Вы можете получить такую базу данных у MaxMind ( https://www.maxmind.com ) или других поставщиков.