2017-08-24 86 views
0

我有一個註冊站點,需要用戶通過輸入用戶名和電子郵件地址來創建他們的帳戶。只允許在一個站點上註冊一臺PC(一個IP地址)

我的網站應該只允許從一臺PC(一個IP地址)註冊一個電子郵件地址。

如果另一個電子郵件帳戶是從同一臺PC註冊的,它將觸發一條消息,說明「您的PC或PC的IP已經註冊到該網站」並拒絕創建該帳戶。

+1

這可能不是一個好主意,因爲今天許多計算機共享一個公共IP地址。另外,許多公共IP地址在計算機之間重複使用。假設1 IP地址= 1的計算機是不正確的。 – user3151902

+0

你也可以欺騙IP地址 – Akintunde007

+0

你到目前爲止嘗試過什麼? – Nima

回答

-1
function get_client_ip() { 
    $ipaddress = ''; 
    if (getenv('HTTP_CLIENT_IP')) 
     $ipaddress = getenv('HTTP_CLIENT_IP'); 
    else if(getenv('HTTP_X_FORWARDED_FOR')) 
     $ipaddress = getenv('HTTP_X_FORWARDED_FOR'); 
    else if(getenv('HTTP_X_FORWARDED')) 
     $ipaddress = getenv('HTTP_X_FORWARDED'); 
    else if(getenv('HTTP_FORWARDED_FOR')) 
     $ipaddress = getenv('HTTP_FORWARDED_FOR'); 
    else if(getenv('HTTP_FORWARDED')) 
     $ipaddress = getenv('HTTP_FORWARDED'); 
    else if(getenv('REMOTE_ADDR')) 
     $ipaddress = getenv('REMOTE_ADDR'); 
    else 
     $ipaddress = 'UNKNOWN'; 
    return $ipaddress; 
} 

使用此功能查找IP地址並將其保存到數據庫。在保存註冊數據之前,請確認IP是否已存在於數據庫中。

然而,它作爲Single IP的一個壞主意並不意味着單個PC。他們是單一的傳出IP,而他們可能是1000+系統在組織內使用相同的IP。學校,大學,企業通常幾乎沒有外出IP,而1000系統在內部連接。

+0

不能盲目使用這些標頭 - 它們可以由客戶端設置,不應該在反向代理配置之外受信任。其中一些我從未見過使用過(「轉發」??)。 – duskwuff

+0

@duskwuff FORWARDED頭由代理服務器設置。因爲如果他們是客戶端和服務器之間的代理服務器..服務器將接收代理服務器地址而不是客戶端地址。因此,一些代理服務器用於將原始客戶端IP保留在「FORWARDED」標頭中。 –

+0

@duskwuff沒有用戶實際使用'FORWARDED'標頭。這些僅用於服務器和代理服務器。由於標題可以設置爲任何鍵值對..我已經指出了常用的代理服務器。 –

相關問題