首頁 > PHP, 程式筆記 > [PHP] 取得使用者真實 IP

[PHP] 取得使用者真實 IP

2005年5月12日 發表評論 閱讀評論

一般在取得使用者 IP 都是利用 $_SERVER['REMOTE_ADDR'] 這個環境變數,但是此變數只會紀錄最後一個主機 IP,所以當使用者瀏覽器有設定 Proxy 時,就無法取得他的真實 IP。
這時可以使用另一個環境變數 $_SERVER['HTTP_X_FORWARDED_FOR'] ,它會紀錄所經過的主機 IP,但是只有在使用者有透過 Proxy 時才會產生,所以可以像以下這樣寫來取得使用者真實 IP。

<?php
if (empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $myip = $_SERVER['REMOTE_ADDR'];
} else {
    $myip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    $myip = $myip[0];
}
echo $myip;
?>
Categories: PHP, 程式筆記 Tags: ,
  1. Ryusuke
    2009年2月26日20:52 | #1

    站長不好意思請問你第三行處的emptyempty()Method是不是用錯了??
    我在執行的時候程式跟我說不認識的function哩

  2. 2009年2月26日22:07 | #2

    @Ryusuke
    我輸入的原始程式碼是 empty(...),
    不知道為啥透過 SyntaxHighlighter 顯示出來變emptyempty(...),
    應該是 bug,麻煩請自行更正囉!

  1. 目前尚無任何 trackbacks 和 pingbacks。
您必須 登入 後才能發表評論。