📌  相关文章
📜  如何在PHP从他们的 IP 获取访问者的国家/地区?

📅  最后修改于: 2022-05-13 02:24:09.372000             🧑  作者: Mango

如何在PHP从他们的 IP 获取访问者的国家/地区?

概览:要获取访问者的国家、大洲、城市等详细信息,首先我们需要获取访问者的IP。可以借助PHP的超全局 $_SERVER 来获取 IP 地址。最后,通过使用 API geoPlugin,我们可以获得有关 IP 地址的信息,即网站的访问者。

第一步:获取访问者的IP地址。
$_SERVER 是一个PHP Superglobals 变量,它保存有关标头、IP、脚本详细信息等的信息。 REMOTE_ADDR、HTTP_X_REAL_IP、HTTP_CLIENT_IP 和 HTTP_X_FORWARDED_FOR 等元素可用于从这个超级全局获取 IP。

示例:本示例获取访问者的IP。


注意:对于 CloudFlare,可能需要使用 HTTP_X_REAL_IP 等元素来获取 IP 地址。

第二步:使用API获取访问者IP的详细信息:这里,我们将使用geoPlugin API获取访问者的详细信息。 api 将传递一个 json 对象,该对象可以转换为PHP变量。

geoplugin_countryName . "\n";
echo 'City Name: ' . $ipdat->geoplugin_city . "\n";
echo 'Continent Name: ' . $ipdat->geoplugin_continentName . "\n";
echo 'Latitude: ' . $ipdat->geoplugin_latitude . "\n";
echo 'Longitude: ' . $ipdat->geoplugin_longitude . "\n";
echo 'Currency Symbol: ' . $ipdat->geoplugin_currencySymbol . "\n";
echo 'Currency Code: ' . $ipdat->geoplugin_currencyCode . "\n";
echo 'Timezone: ' . $ipdat->geoplugin_timezone;
   
?>

输出:

Country Name:    United States
City Name:       Boardman
Continent Name:  North America
Latitude:        45.8491
Longitude:       -119.7143
Currency Symbol: $
Currency Code:   USD
Timezone:        America/Los_Angeles