检测登录用户的IP地址更改


Detect IP address change of logged in user

在使用托管服务提供商的cPanel时,我将互联网连接从一个网络切换到另一个网络,当我在切换连接后单击cPanel上的链接时,我看到以下消息:

您的 IP 地址已更改。请重新登录。

我想知道如何检测此类IP地址更改,以便使用PHP在我的网站上提供此类安全性!!

这很简单...登录时,您可以创建$_SESSION对象...只需将IP保留在该对象$_SESSION['user_ip']中,并在身份验证/验证功能(您必须有一个)中将该IP与当前($_SERVER['REMOTE_ADDR'])进行比较。

如果你不想在没有用户交互的情况下做到这一点,你需要定期发出一些ajax请求。

附言。我讨厌检查IP的门户网站。你不能该死地保持登录状态,因为大多数提供商(所有GSM提供商,法国电信等)都有动态IP,每隔几小时(最多24小时)更改一次。

您可以使用以下命令在 PHP 中获取浏览器的 IP 地址:

$ip = $_SERVER['REMOTE_ADDR']

如果将其存储在用户会话中,则可以验证其 IP 是否未更改。如果它改变...注销它们并显示警告消息。

您可以使用

$ip = $_SERVER['REMOTE_ADDR']

然后你可以加入一个if语句。像这样,

if($ip == $_SESSION['username']) {
echo "User logged in";
} else die("IP address has changed, try again later");