我有一個註冊站點,需要用戶通過輸入用戶名和電子郵件地址來創建他們的帳戶。只允許在一個站點上註冊一臺PC(一個IP地址)
我的網站應該只允許從一臺PC(一個IP地址)註冊一個電子郵件地址。
如果另一個電子郵件帳戶是從同一臺PC註冊的,它將觸發一條消息,說明「您的PC或PC的IP已經註冊到該網站」並拒絕創建該帳戶。
我有一個註冊站點,需要用戶通過輸入用戶名和電子郵件地址來創建他們的帳戶。只允許在一個站點上註冊一臺PC(一個IP地址)
我的網站應該只允許從一臺PC(一個IP地址)註冊一個電子郵件地址。
如果另一個電子郵件帳戶是從同一臺PC註冊的,它將觸發一條消息,說明「您的PC或PC的IP已經註冊到該網站」並拒絕創建該帳戶。
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系統在內部連接。
不能盲目使用這些標頭 - 它們可以由客戶端設置,不應該在反向代理配置之外受信任。其中一些我從未見過使用過(「轉發」??)。 – duskwuff
@duskwuff FORWARDED頭由代理服務器設置。因爲如果他們是客戶端和服務器之間的代理服務器..服務器將接收代理服務器地址而不是客戶端地址。因此,一些代理服務器用於將原始客戶端IP保留在「FORWARDED」標頭中。 –
@duskwuff沒有用戶實際使用'FORWARDED'標頭。這些僅用於服務器和代理服務器。由於標題可以設置爲任何鍵值對..我已經指出了常用的代理服務器。 –
這可能不是一個好主意,因爲今天許多計算機共享一個公共IP地址。另外,許多公共IP地址在計算機之間重複使用。假設1 IP地址= 1的計算機是不正確的。 – user3151902
你也可以欺騙IP地址 – Akintunde007
你到目前爲止嘗試過什麼? – Nima