hel*_*lly 4 apache .htaccess geolocation geoip cloudflare
CloudFlare从原始IP提供用户的国家/地区,但我需要在城市级别上的位置,因此我使用mod_geoip Apache脚本添加了MaxMind的GeoCityLite.
现在的问题是在PHP变量中获取IP,我正在使用类似的东西
$country = apache_note("GEOIP_COUNTRY_CODE");
Run Code Online (Sandbox Code Playgroud)
这很好,但IP mod_geoip使用的是CloudFlare DNS,而不是最终用户.CloudFlare提供服务器变量HTTP_CF_CONNECTING_IP以使用最终用户IP,但如何在mod_geoip中使用THAT变量/ IP?
这可以通过htaccess中的几行完成吗?
编辑:我有一个解决方法使用php API进行geoip这很容易,但是使用apache查找php api的基准测试要好得多,所以我宁愿找到这个解决方案.
Eun*_*Eun 17
在调用geoip之前执行此操作:
$_SERVER['REMOTE_ADDR'] = isset($_SERVER['HTTP_CF_CONNECTING_IP']) ? $_SERVER['HTTP_CF_CONNECTING_IP'] : $_SERVER['REMOTE_ADDR'];
Run Code Online (Sandbox Code Playgroud)
Cyc*_*one -3
要获取存储在诸如 之类的变量中的用户 IP 地址$ip,您可以通过以下几种方式来实现:
$ip = $_SERVER['REMOTE_ADDR'];
Run Code Online (Sandbox Code Playgroud)
或者
$ip = getenv('REMOTE_ADDR');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10885 次 |
| 最近记录: |