【问题标题】:Ip address with the address 192.168.0.0 network in http request headerhttp请求头中地址为192.168.0.0网络的IP地址
【发布时间】:2013-03-18 13:33:19
【问题描述】:

在 Apache 1.3 中使用 mod_perl。 客户端地址获取headers X-Forwarded-For、HTTP_X_FORWARDED_FO或环境变量$ENV{REMOTE_ADDR}:

sub address {
    my $self = shift;
    unless(defined $self->{address}){
        my $header = $self->apache->headers_in->{'X-Forwarded-For'} ||
            $ENV{HTTP_X_FORWARDED_FOR} || '';
        my ($ip) = $header =~ /([^,\s]+)$/;
        $self->{address} = $ip || $ENV{REMOTE_ADDR} || ''; 
    }
    return $self->{address};
}

问题是有时会有192.168.200.11、192.168.1.156、192.168.0.73等地址。虽然服务器没有连接到网络192.168.0.0。

【问题讨论】:

    标签: apache http http-headers ip mod-perl


    【解决方案1】:

    当您明确查看HTTP_X_FORWARDED_FOR 标头时,预计该标头(如果所有代理都正确设置)将包含所有中间 IP 和原始客户端 IP。由于大多数人都在本地家庭网络中,因此大多数原始 IP 都在 192.168.xx.xx 范围内。

    【讨论】:

      猜你喜欢
      • 2019-02-03
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 2023-03-03
      • 2012-06-23
      • 2021-05-31
      • 2011-07-31
      相关资源
      最近更新 更多