我的网站上有一个基本的申请表,使用$_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或以其他方式禁止特定用户的信息。
答案 0 :(得分:2)
使用此:https://gist.github.com/cballou/2201933
这适用于我的博客网站。我不知道为什么$ _SERVER [' REMOTE_ADDR']无法解决这个问题,但github中的代码段工作得非常好。
答案 1 :(得分:1)
当用户使用代理(他已经自己设置)时,我发生了这种情况 - 而不是IP地址,我得到了类似“neil @ mars”的内容,因为这是他在代理中配置的内容。 / p>
除了
$_SERVER['REMOTE_ADDR']
你可以尝试
getenv('HTTP_X_FORWARDED_FOR')
getenv('HTTP_CLIENT_IP')