目前我正在尝试将我的客户端IP地址存储在视图中,这证明比预期更复杂。
以下是我目前正在使用的代码。
<?php
$ip = $_SERVER['REMOTE_ADDR'];
print $_SERVER['REMOTE_ADDR'];
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));
$location = $details->country;
print '<br>';
print $details->country;
print '<br>';
print $details->city;
?>
返回看起来像这样的内容。
173.245.56.104
US
San Francisco
此IP和此位置链接回cloudflare服务器,而不是我的实际IP地址。
您可以在此处查看此信息 cf-173-245-56-104.cloudflare.com 。
当我的好友访问包含假定提供IP的文档的同一网址时,它给了他们一个不同的IP也连接到CloudFlare。
示例1如下。
199.27.128.244
SG
Singapore
指向此cloudflare主机名的链接 cf-199-27-128-244.cloudflare.com 。
通过简单的查找,您可以看到它甚至没有提供正确的GEO,因此我希望使用此代码,如果它说美国用户来自的话甚至都不可行新加坡或其他国家。
所以问题是,我如何在访问时获得 REAL 客户端IP地址?