tags:

views:

194

answers:

3

Hi

How to get country name from an Ip address using Php with out using a commercial GeoIP Region Edition. Please does any one help me?

+4  A: 

I don't think you can do it simply using PHP, but I have found a free API solution that you can use. It requires simple post and response. http://www.hostip.info/use.html

example post: http://api.hostip.info/get_html.php?ip=12.215.42.19

example response: Country: UNITED STATES (US) City: Sugar Grove, IL

jerebear
+1  A: 

Use the free IP geolocation webservice

codaddict
+3  A: 

Code

$json = file_get_contents('http://freegeoip.appspot.com/json/66.102.13.106');
$expression = json_decode($json);
print_r($expression);

Result

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
)

To get countryname

echo $expression->countryname;

Result

United States
Peter Lindqvist
Assuming you have `json_decode()` which ships only from PHP >= 5.2.
Boldewyn