ユーザーの国を取得するために 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の国コードをチェックしてから、それが異なるかどうかを確認する必要があります。