$country=file_get_contents('http://api.hostip.info/get_html.php?ip=');
echo $country;
// Reformat the data returned (Keep only country and country abbr.)
$only_country=explode (" ", $country);
echo "Country : ".$only_country[1]." ".substr($only_country[2],0,4);
$url = "http://api.ipstack.com/122.167.180.20?access_key=ACCESS_KEY&format=1";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response = json_decode($response);
$city = $response->city; // You can get all the details like longitude, latitude from the '$response'.
7条答案
按热度按时间djmepvbi1#
bybem2ql2#
将freegeoip.net更改为ipinfo.io
jchrr9hc3#
使用此源代码尝试此代码。* 它工作!
7gs2gvoe4#
使用hostip.info服务尝试以下代码:
xpszyzbs5#
由于PHP依赖于服务器,所以无法提供实时位置,只能提供静态位置,最好避免依赖JavaScript来定位,而不要使用PHP。
但是需要将JavaScript数据发布到PHP,以便服务器上的程序可以轻松地访问它。
nbewdwxp6#
IP地址提供了一个非常不可靠的位置。如果一开始并不一定要有这个位置,那么可以在加载时用JavaScript Ajax来 AJAX 这个位置。(另外,用户需要给您访问它的权限。)
HTML5 Geolocation
gdx19jrr7#
旧版freegeoip API is now deprecated将于2018年7月1日停产。
新API来自 ipstack。您必须在ipstack中创建帐户。然后您可以使用API URL中的访问密钥。
如需了解更多信息,请访问 freegeoip(GitHub)。