2011-05-02 127 views
0

我在我的mysql中创建了一个表,用于存储用户的登录信息。 我们存储,IP地址(如long2ip),用户名,网站名和时间。我想要做的是检查用户是否登录到超过2个不同IP的站点。在php比较ip地址

+1

你可以发布你用来在数据库中存储用户名和IP的代码吗?否则,我们只能给出非常含糊的通用答案。它听起来像在PHP中很容易做到。 – 2011-05-02 13:43:24

+0

我应该补充一点,在我编辑问题之前,它只是简单地问'在PHP中这很简单'。因此,'是的,这很容易'回答和评论。 – pavium 2011-05-02 13:47:16

+0

检查用户是否从2个以上不同的IP(“使用3个IP记录”)登录与比较IP(“此IP与(或不)IP)”不同。 – binaryLV 2011-05-02 13:53:51

回答

4

只要您有可用的数据库存储版本,这应该相当容易。一些未经测试的伪代码:

$longIPdb = ip2long($ipfromdb); 
$longRemote = ip2long($_SERVER['REMOTE_ADDR']); 

if ($longIPdb == $longRemote) echo "We're the same."; 
else echo "We're from different IPs."; 
1

听起来这应该在SQL中进行,而不是PHP:

SELECT COUNT(DISTINCT ip) WHERE username='username'; 

如果必要的话这可以在时间(AND time > NOW()-3600)进一步限制。 结果将是给定用户在数据库中具有的不同IP地址的数量(在给定的时间范围内,如果指定的话)。