我使用Maxmind geoip数据库来检索用户所在的国家/地区。我们在mysql中存储所有登录尝试,并且通常人们使用不同的ip登录。如果ip来自同一个国家,但这不是问题,但如果密码在主板上共享,你会看到所有使用它的国家。
我现在用它来检索国家和ip:
$ipaddress = (long2ip($row['ip']));
$country_name = geoip_country_name_by_addr($gi, "$ipaddress");
$country_iso = geoip_country_code_by_addr($gi, "$ipaddress");
然后计算不同IP地址的数量:
$count_ip = "SELECT distinct ip FROM members WHERE username='".$row['username']."'";
$result_ip = mysql_query($count_ip);
$ips = mysql_num_rows($result_ip);
如果超过1,我会得到一条消息。
但我想比较用户名使用的所有IP地址的国家/地区代码,以便我可以看到不同国家/地区是否使用了用户名,然后发送消息。
我该怎么做?我有ip的数组,我需要首先检查ip的国家代码然后看它是否不同。
答案 0 :(得分:1)
您的查询已经返回所有IP地址,因此您必须完成结果行:
$countries = array();
while ($row = mysql_fetch_array($result_ip, MYSQL_NUM)) {
$ipaddress = (long2ip($row[0]));
$countries[geoip_country_name_by_addr($gi, "$ipaddress")] = true;
}
if (count($countries) > 1) {
// more than one countries have been used to sign in
}
顺便说一句,我假设您在查询中添加日期范围;否则你会对旅行的人产生负面影响; - )