2011-04-26 56 views
4

可能重複:
Getting Users Real IP address using PHP最可靠的方法來獲取使用php的用戶的ip地址?

我想記錄的人誰訪問使用PHP腳本來阻止垃圾郵件發送者可能我的網站的IP地址。有沒有一種確定的方法來查找和記錄任何人的真實IP地址或最可靠的方法?

更新:我的網站只要求用戶輸入密碼登錄,不需要用戶名。如果我想保留現有的驗證方法,還可以使用其他方法來阻止或阻止大多數垃圾郵件發送者?

+1

$ _ SERVER [ 'REMOTE_ADDR'],你不能阻止垃圾郵件發送者的任何可靠的方法 – 2011-04-26 04:30:20

回答

15

功能在PHP中找到真正的IP地址

function getRealIpAddr() 
{ 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share 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 $ip; 
} 

來源: - http://roshanbh.com.np/2007/12/getting-real-ip-address-in-php.html通過IP

+2

請注意,X-Forwarded-For可能是一個逗號+空格分隔的IP列表,而不僅僅是1:http://en.wikipedia.org/wiki/X-Forwarded-For #格式 – Fanis 2012-10-31 08:49:39

+0

這不是很危險嗎? http_x_forwared可以被客戶修改嗎?只需堅持$ _SERVER ['REMOTE_ADDR']; – Gokigooooks 2016-08-18 13:43:51

1

正如Dagon所說的,$ _SERVER ['REMOTE_ADDR'],至少使用Apache。

但是再次,它已經在Apache日誌中。

+0

還有什麼可以我如何阻止或阻止大多數垃圾郵件發送者? – user701510 2011-04-26 04:42:09

+0

recaptcha?需要Facebook登錄(並且只接受至少有10個朋友的人)?只是想到幾件事 – 2011-04-26 04:50:16