Как получить имя страны из Ip-адреса, используя Php без использования коммерческого GeoIP Region Edition. Пожалуйста, кто-нибудь мне помогает?
Я не думаю, что вы можете сделать это просто с помощью PHP, но я нашел бесплатное API-решение, которое вы можете использовать. Это требует простой почты и ответа. http://www.hostip.info/use.html
пример сообщения: http://api.hostip.info/get_html.php?ip=12.215.42.19
пример ответа: Страна: СОЕДИНЕННЫЕ ШТАТЫ (США) Город: Sugar Grove, IL
Код
$json = file_get_contents('http://freegeoip.appspot.com/json/66.102.13.106'); $expression = json_decode($json); print_r($expression);
результат
stdClass Object ( [status] => 1 [ip] => 66.102.13.106 [countrycode] => US [countryname] => United States [regioncode] => CA [regionname] => California [city] => Mountain View [zipcode] => 94043 [latitude] => 37.4192 [longitude] => -122.057 )
Чтобы получить имя страны
echo $expression->countryname;
результат
United States
Используйте бесплатную веб-службу геолокации IP
API-интерфейс GeoIP PHP
Если вы хотите настроить собственное приложение, то это источник git для вышеупомянутого решения, Питер (я всегда предпочитаю самоорганизованное решение вместо того, чтобы нажимать и полагаться на какую-то другую услугу):
Исходный код FreeGeoIP
Использовать апиноты внешней геолокации api
Пример:
http://apinotes.com/ipaddress/ip.php?ip=27.62.184.235
URL: http://apinotes.com/ipaddress/ip.php Parameter Name: ip Value: 27.62.184.23 (ipv4 address)
Пример получения информации о стране по адресу Ip в Php
<?php $ip = '27.62.184.235'; $json_data = file_get_contents("http://apinotes.com/ipaddress/ip.php?ip=$ip"); $ip_data = json_decode($json_data, TRUE); if ($ip_data['status'] == 'success') { ?> <p>Ip Address: <?php echo $ip_data['ip'] ?></p> <p>Country Name: <?php echo $ip_data['country_name'] ?></p> <p>Country Code: <?php echo $ip_data['country_code'] ?></p> <p>Country Code (3 digit): <?php echo $ip_data['country_code3'] ?></p> <p>Region Code: <?php echo $ip_data['region_code'] ?></p> <p>Region Name: <?php echo $ip_data['region_name'] ?></p> <p>City Name: <?php echo $ip_data['city_name'] ?></p> <p>Latitude: <?php echo $ip_data['latitude'] ?></p> <p>Longitude: <?php echo $ip_data['longitude'] ?></p> <?php } ?>