检测登录用户的IP地址变化

时间:2016-02-05 11:52:22

标签: php security ip-address

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

  

您的IP地址已更改。请再次登录。

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

3 个答案:

答案 0 :(得分:4)

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

如果你不想在没有用户互动的情况下完成它,你需要做一些定期的ajax请求。

PS。我讨厌检查IP的门户网站。你不能坚持登录,因为大多数提供商(所有GSM,法国电信等)都有动态的ips,每隔几个小时(最多24小时)就会改变。

答案 1 :(得分:2)

您可以使用以下内容获取PHP中浏览器的IP地址:

$ip = $_SERVER['REMOTE_ADDR']

如果将其存储在用户会话中,则可以验证其IP未更改。如果它改变了......用一条警告信息将它们记录下来。

答案 2 :(得分:0)

您可以使用

$ip = $_SERVER['REMOTE_ADDR']

然后你可以抛出一个if语句。像这样的东西,

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