使用WPB_GET_IP的WordPress快捷码

时间:2021-02-01 作者:Gregory Bologna

我正在Wordpress中使用一个短代码来捕获访问者的IP地址。除了一件事之外,这是有效的。对于一个访问者,两个用逗号分隔的IP地址用下面的短代码捕获。nslookup似乎不存在第二个IP。我已经添加了我的补丁来获取第一个IP,但我很想知道这是怎么可能的。

“模糊化”;24.158.999.999、104.129.999.999“;

 function get_visitor_ip() {
    if (!empty( $_SERVER[\'HTTP_CLIENT_IP\'])) {
    //check ip from internet
    $ip = $_SERVER[\'HTTP_CLIENT_IP\'];
    } elseif (!empty($_SERVER[\'HTTP_X_FORWARDED_FOR\'])) {
    //to check ip is pass from proxy
    $ip = $_SERVER[\'HTTP_X_FORWARDED_FOR\'];
    } else {
    $ip = $_SERVER[\'REMOTE_ADDR\'];
    }
    return apply_filters(\'wpb_get_ip\', $ip);
 }
 add_shortcode(\'visitor_ip\', \'get_visitor_ip\');

1 个回复
SO网友:Uwe

请参阅接受的答案ServerFault:

[…]如果一个请求通过多个代理服务器链接,则每个代理都应将前一个代理的IP添加到现有的X-Forwarded-For标头中,以便保留整个链。

X-Forwarded-For: <client>, <proxy1>, <proxy2>, ...

相关推荐