[英]PHP: real IP address with API
您好,我使用此api: http : //ipapi.co/json来获得localhost(127.0.0.1)中的国家/地区,城市和真实IP地址,但工作正常,但是当我将代码放入网站时,我的代码未显示地址客户端,但服务器地址我该如何解决?
我可以用$_SERVER['REMOTE_ADDR'];
获得客户端的IP地址$_SERVER['REMOTE_ADDR'];
但是我需要这个api来获得国家和城市: http : //ipapi.co/json 。
Function TTT() {
$ip = false;
$city = false;
$region = false;
$country = false;
$country_code = false;
if($json = @file_get_contents("http://www.geoplugin.net/json.gp")) {
$obj = json_decode($json);
if(isset($obj->geoplugin_request) && $obj->geoplugin_request != false) {
$ip = "IP: ". $obj->geoplugin_request. "</br>";
}
if(isset($obj->geoplugin_city) && $obj->geoplugin_city != false) {
$city = "City: ". $obj->geoplugin_city. "</br>";
}
if(isset($obj->geoplugin_city) && $obj->geoplugin_city != false) {
$region = "Region: ". $obj->geoplugin_city. "</br>";
}
if(isset($obj->geoplugin_countryName) && $obj->geoplugin_countryName != false) {
$country = "Country: ". $obj->geoplugin_countryName. "</br>";
}
if(isset($obj->geoplugin_countryCode) && $obj->geoplugin_countryCode != false) {
$country_code = "Country Code: ". $obj->geoplugin_countryCode. "</br>";
}
return $ip. $city. $region. $country. $country_code;
}
}
echo TTT();
在http://ipapi.co/json使用api
$obj = json_decode($json);
将此JSON放入关联数组中:
{
"ip": "00.00.00.00",
"city": "Atlanta",
"region": "Georgia",
"country": "US",
"postal": "31532",
"latitude": 34.461,
"longitude": -85.9877,
"timezone": "America/New_York"
}
像这样访问城市和地区:
if(isset($obj->city) && $obj->city != false) {
$city = "City: ". $obj->city. "</br>";
}
if(isset($obj->region) && $obj->region != false) {
$region = "Region: ". $obj->region. "</br>";
}
看来您没有使用最初声明的API。
您必须在对远程服务的请求中包括访问者的IP。 根据我的测试,您可以将客户端IP地址放在如下网址中:
function TTT() {
$ip = false;
$city = false;
$region = false;
$country = false;
$country_code = false;
if($json = @file_get_contents("http://ipapi.co/" . $_SERVER['REMOTE_ADDR'] . "/json")) {
$obj = json_decode($json);
if(isset($obj->ip) && $obj->ip != false) {
$ip = "IP: ". $obj->ip. "</br>";
}
if(isset($obj->city) && $obj->city != false) {
$city = "City: ". $obj->city. "</br>";
}
if(isset($obj->region) && $obj->region != false) {
$region = "Region: ". $obj->region. "</br>";
}
if(isset($obj->country) && $obj->country != false) {
$country = "Country: ". $obj->country. "</br>";
}
return $ip. $city. $region. $country;
}
}
echo TTT();
注意:该API的响应如下:
{
"ip": "8.8.8.8",
"city": "Mountain View",
"region": "California",
"country": "US",
"postal": "94035",
"latitude": 37.386,
"longitude": -122.0838,
"timezone": "America/Los_Angeles"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.