私の Web サイトには$_SERVER['REMOTE_ADDR']
、フォームを送信するユーザーの IP アドレスを含めるために使用する基本的なアプリケーション フォームがあります。
フォーム プロセッサ スクリプトで以下を使用しています。
// Create database object and connect to database.
$db = new Database($db_host, $db_username, $db_password, $db_name);
$db->connect();
// Collect POST data
$merchant_data['ip_address'] = $_SERVER['REMOTE_ADDR'];
$merchant_data['first_name'] = isset($_POST['first_name']) ? $_POST['first_name'] : '';
$merchant_data['last_name'] = isset($_POST['last_name']) ? $_POST['last_name'] : '';
$merchant_data['email_address'] = isset($_POST['email']) ? $_POST['email'] : '';
$merchant_data['phone_number'] = isset($_POST['phone']) ? $_POST['phone'] : '';
$merchant_data['customer_notes'] = isset($_POST['comments']) ? $_POST['comments'] : '';
$merchant_data['plan_name'] = isset($_POST['plan_name']) ? $_POST['plan_name'] : '';
$merchant_data['estimated_monthly_volume'] = $_SESSION['estimated_monthly_volume'];
$merchant_data['interested_in'] = isset($_POST['interested_in']) ? $_POST['interested_in'] : '';
$merchant_data['additional_equipment_interest'] = isset($_POST['additional_equipment_interest']) ? serialize($_POST['additional_equipment_interest']) : '';
$additional_equipment_interest = isset($_POST['additional_equipment_interest']) ? $_POST['additional_equipment_interest'] : array();
$merchant_data['website_id'] = 1;
// Add new record in database.
$merchant_app_record_id = $db->query_insert('merchant_account_applications',$merchant_data);
// Close database connection
$db->close();
最近、誰かからこのフォームへのスパム ヒットがいくつか寄せられていますが、どういうわけか、このユーザーの IP アドレスがシステムに記録されていません。
ただし、通過する他のすべてのユーザーは、ログに記録された IP アドレスで終了します。
私のサイトが IP アドレスを取得できないようにするために、この人は何をしているでしょうか? 彼らの IP を禁止したいのですが、取得できません。
IP を取得する方法や、特定のユーザーを禁止する別の方法に関する情報をいただければ幸いです。