检测登录用户的 IP 地址更改
Detect IP address change of logged in user
在使用托管服务提供商的 cPanel 时,我将 Internet 连接从一个网络切换到另一个网络,当我在切换连接后单击 cPanel 上的 link 时,我看到了消息:
Your IP address has changed. Please log in again.
我想知道如何检测此类 IP 地址更改,以便在我的网站中使用 PHP 提供此类安全性!!
这很简单...登录时,您创建 $_SESSION
对象...并将 ip 保留在该对象 $_SESSION['user_ip']
中,并在身份验证/验证功能中(您必须拥有一),将该ip与当前ip进行比较($_SERVER['REMOTE_ADDR']
)。
如果您不想在没有用户交互的情况下实现它,您需要定期 ajax 请求。
PS。我讨厌检查 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");
在使用托管服务提供商的 cPanel 时,我将 Internet 连接从一个网络切换到另一个网络,当我在切换连接后单击 cPanel 上的 link 时,我看到了消息:
Your IP address has changed. Please log in again.
我想知道如何检测此类 IP 地址更改,以便在我的网站中使用 PHP 提供此类安全性!!
这很简单...登录时,您创建 $_SESSION
对象...并将 ip 保留在该对象 $_SESSION['user_ip']
中,并在身份验证/验证功能中(您必须拥有一),将该ip与当前ip进行比较($_SERVER['REMOTE_ADDR']
)。
如果您不想在没有用户交互的情况下实现它,您需要定期 ajax 请求。
PS。我讨厌检查 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");