【问题标题】:Having Users IP Address Showing In My Email Form [duplicate]在我的电子邮件表单中显示用户 IP 地址 [重复]
【发布时间】:2015-08-30 09:01:19
【问题描述】:

您好,我创建了一个电子邮件表单,但非常不熟悉如何在发送的电子邮件中显示用户 IP 地址的部分中编写代码。这是我的代码。

【问题讨论】:

  • 您的问题中没有与 IP 地址相关的代码。你试过什么?
  • 不确定从哪里开始。我以前从未在代码中使用过 IP 地址。我试图用谷歌搜索它,但没有运气。
  • 您想在电子邮件服务器中包含您的 IP 地址,还是要将收件人的 IP 地址放在电子邮件正文中?
  • 我想把收件人的ip地址放在邮件正文中
  • IP 不能唯一标识一个用户,所以它有点没用

标签: php html forms joomla


【解决方案1】:

您无法确定使用您的电子邮件表单的人的真实 IP,因为他们可能位于代理或 VPN 之后,但这是在访问时获得最佳候选 IP 地址的一种方式(@ 987654321@):

function getUserIP() {
    $client  = @$_SERVER['HTTP_CLIENT_IP'];
    $forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
    $remote  = $_SERVER['REMOTE_ADDR'];

    if(filter_var($client, FILTER_VALIDATE_IP)) {
        $ip = $client;
    } else if(filter_var($forward, FILTER_VALIDATE_IP)) {
        $ip = $forward;
    } else {
        $ip = $remote;
    }
    return $ip;
}

然后您可以将 IP 信息添加到您的电子邮件正文中

$myMessage .= "Sent from IP: " . getUserIP() . ".";

延伸阅读:What is the difference between HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR?

【讨论】:

  • 嗨 Drakes,我将如何向其中添加该 php 代码,
  • $myMessage = $myNameLabel 。 '。 $_POST["m_name".$unique_id].', '. $myEmailLabel 。 '。 $_POST["m_email".$unique_id].', '.日期(“r”);
  • $myMessage .=(注意点)将更多文本附加到$myMessage,因此您可以使用我的答案中提供的行将 IP 信息添加到消息的末尾。
  • 或者,$myMessage = $myNameLabel .' '. $_POST["m_name".$unique_id].', '. $myEmailLabel .' '. $_POST["m_email".$unique_id].', '. date("r") . ', ' . getUserIP();
  • @EndôFujimoto 你觉得效果如何?
猜你喜欢
  • 1970-01-01
  • 2016-03-05
  • 2015-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
  • 2015-04-24
  • 1970-01-01
相关资源
最近更新 更多