Методы получения страны по IP-адресу с примерами кода

Чтобы получить страну, связанную с IP-адресом, вы можете использовать различные методы. Вот несколько подходов с примерами кода на разных языках программирования:

  1. 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)
  2. 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;
  3. 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);
  4. 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 ) или других поставщиков.