Чтобы получить страну, связанную с 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 ) или других поставщиков.