| 檢查來源是否為 PROXY 來源:小恐龍 |
|---|
一般我們大都使用 $ENV{'REMOTE_ADDR'} 來取得使用者的 IP 位址, 但是當使用者是
透過 PROXY 來訪時, 則將會取得 PROXY 的 IP 位址, 而不是真正的來訪 IP 位址,
要偵測及取得真正 IP 位址時, 可以先檢查 $ENV{'HTTP_X_FORWARDED_FOR'} 值,
若沒有該值直接用 $ENV{'REMOTE_ADDR'} 即可得到確實的 IP 位址.
若有得話, 則該值就為確實 IP 位址, 而 $ENV{'REMOTE_ADDR'} 就為 PROXY 的 IP 位址.
if ($ENV{'HTTP_X_FORWARDED_FOR'} eq "") {
print "NO Proxy, IP: $ENV{'REMOTE_ADDR'}";
} else {
print "Proxy IP: $ENV{'REMOTE_ADDR'}, IP: $ENV{'HTTP_X_FORWARDED_FOR'}";
}
| 小恐龍工作坊 提供 |
|---|