2013-03-28 151 views
0

對Apache 1.3使用mod_perl。客戶端的 地址獲得頭X - 轉發,因爲,HTTP_X_FORWARDED_FO,或環境變量$ ENV {} REMOTE_ADDR:使用http請求標頭中的地址192.168.0.0網絡的IP地址

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。

回答

1

預期您正在明確查看HTTP_X_FORWARDED_FOR標題(如果由所有代理正確設置的話)將包含所有中間IP和原始客戶端IP。由於大多數人在本地家庭網絡中,大多數始發IP位於192.168.xx.xx範圍內。