$user_ip_address=$_SERVER['REMOTE_ADDR'];
我使用上面的代码找出了ip地址。如何使用这个ip地址查找国家名称?
由于
答案 0 :(得分:3)
你需要ip 2国家数据库 看这里:http://phpweby.com/software/ip2country
或使用外部服务 喜欢:http://freegeoip.net/static/index.html
示例:
答案 1 :(得分:3)
您可以使用以下内容:
function countryCityFromIP($ipAddr)
{
ip2long($ipAddr)== -1 || ip2long($ipAddr) === false ? trigger_error("Invalid IP", E_USER_ERROR) : "";$ipDetail=array();
$xml = file_get_contents("http://api.hostip.info/?ip=".$ipAddr);
//get the city name inside the node <gml:name> and </gml:name>
preg_match("@<Hostip>(\s)*<gml:name>(.*?)</gml:name>@si",$xml,$match);
$ipDetail['city']=$match[2];
preg_match("@<countryName>(.*?)</countryName>@si",$xml,$matches);
$ipDetail['country']=$matches[1];
preg_match("@<countryAbbrev> (.*?)</countryAbbrev>@si",$xml,$cc_match);$ipDetail['country_code']=$cc_match[1]; //assing the country code to array
return $ipDetail;
}
print_r(countryCityFromIP('202.53.71.151'));
答案 2 :(得分:0)
您需要地理位置数据库,请参阅他们免费提供的www.maxmind.com。
答案 3 :(得分:0)
以下是hostip.info上API的链接:http://www.hostip.info/use.html
对于失败的查询,您可以尝试回到查询的另一个站点,例如hostip.info,碰巧有一个不错的API并且看起来很友好:
http://api.hostip.info/country.php?ip=4.2.2.2
<强>返回强>:
US