来自php的国家名称

时间:2010-01-04 09:17:38

标签: php ip-address

如何使用Php从Ip地址获取国家/地区名称,而不使用商业GeoIP区域版。请帮助我吗?

6 个答案:

答案 0 :(得分:7)

代码

$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

答案 1 :(得分:6)

我认为你不能简单地使用PHP,但我找到了一个可以使用的免费API解决方案。它需要简单的帖子和回复。 http://www.hostip.info/use.html

示例帖子: http://api.hostip.info/get_html.php?ip=12.215.42.19

示例回复: 国家:美国(美国) 城市:伊利诺伊州Sugar Grove

答案 2 :(得分:3)

答案 3 :(得分:2)

答案 4 :(得分:1)

如果你想在这里设置你自己的应用程序是上述解决方案的git源码,彼得(我总是喜欢自托管解决方案,而不是点击并依赖其他服务):

FreeGeoIP Source Code

答案 5 :(得分:1)

使用geolocation api外部http://apinotes.com/ipaddress/ip.php?ip=27.62.184.235

示例:

{{3}}

URL:  http://apinotes.com/ipaddress/ip.php
Parameter Name: ip
Value:  27.62.184.23 (ipv4 address)

通过IP地址中的IP地址获取国家/地区详细信息的示例

<?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 }
?>