在使用我的托管服务提供商的cPanel时,我将我的互联网连接从一个网络切换到另一个网络,当我在切换连接后点击我的cPanel上的链接时,我看到了消息:
您的IP地址已更改。请再次登录。
我想知道如何检测这样的IP地址更改,以便在我的网站上用PHP提供这样的安全性!!
答案 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");