[英]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.