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

Php 检测已登录用户的IP地址更改,php,security,ip-address,Php,Security,Ip Address,在使用主机提供商的cPanel时,我将internet连接从一个网络切换到另一个网络,当我在切换连接后单击cPanel上的链接时,我看到一条消息: 您的IP地址已更改。请重新登录 我想知道如何检测这样的IP地址变化,以提供这样的安全性在我的网站与PHP 这很简单。。。登录时,您将创建$\u会话对象。。。只需将ip保存在该对象的会话['user\u ip'],并在身份验证/验证功能(您必须有一个)中,将该ip与当前ip进行比较($\u服务器['REMOTE\u ADDR']) 如果您不想在没有用户

在使用主机提供商的cPanel时,我将internet连接从一个网络切换到另一个网络,当我在切换连接后单击cPanel上的链接时,我看到一条消息:

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


我想知道如何检测这样的IP地址变化,以提供这样的安全性在我的网站与PHP

这很简单。。。登录时,您将创建
$\u会话
对象。。。只需将ip保存在该对象的会话['user\u ip'],并在身份验证/验证功能(您必须有一个)中,将该ip与当前ip进行比较(
$\u服务器['REMOTE\u ADDR']

如果您不想在没有用户交互的情况下完成,那么需要定期发出一些ajax请求


另外,我讨厌检查IP的门户。您不能继续登录,因为大多数提供商(所有GSM提供商、法国电信等)都有动态IP,每隔几小时(最多24小时)就会更改一次。

这很简单。。。登录时,您将创建
$\u会话
对象。。。只需将ip保存在该对象的会话['user\u ip'],并在身份验证/验证功能(您必须有一个)中,将该ip与当前ip进行比较(
$\u服务器['REMOTE\u ADDR']

如果您不想在没有用户交互的情况下完成,那么需要定期发出一些ajax请求


另外,我讨厌检查IP的门户。您不能继续登录,因为大多数提供商(所有GSM提供商、法国电信等)都有动态IP,每隔几小时(最多24小时)就会更改一次。

您可以通过以下内容在PHP中获取浏览器的IP地址:

$ip = $_SERVER['REMOTE_ADDR']

如果将其存储在用户会话中,则可以验证他们的IP没有更改。如果它改变了。。。用警告消息将其注销。

您可以通过以下内容在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"); 
你可以用

$ip = $_SERVER['REMOTE_ADDR']
然后你可以加入一个if语句。诸如此类

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

注意你的“安全”改进,它将阻止用户在切换到其他临时ip地址时使用IPv6良好点,感谢你的“安全”改进,它将阻止用户在切换到其他临时ip地址时使用IPv6良好点,谢谢你,你说得对,它也有负面影响。。。我想到了这样的解决方案,我想知道它是否是最优的(最佳实践)!!是的,你是对的,它也可以有缺点。。。我想到了这样的解决方案,我想知道它是否是最优的(最佳实践)!!