在我的电子邮件表单中显示用户 IP 地址 [重复]

Posted

技术标签:

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

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

【问题讨论】:

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

您无法确定使用您的电子邮件表单的人的真实 IP,因为他们可能位于代理或 *** 之后,但这是在访问时获得最佳候选 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 你觉得效果如何?

以上是关于在我的电子邮件表单中显示用户 IP 地址 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如果用户从特定IP连接,PHP仅显示表单

如何在 PHP 中收集 IP 地址 [重复]

使用javascript打印用户的IP地址[重复]

当消息中有法语口音时,我的邮件功能返回成功并且未收到邮件[重复]

为啥电子邮件验证总是在我的应用程序中出错? [复制]

PHP表单发送正确,但我没有收到电子邮件[重复]