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

Having Users IP Address Showing In My Email Form

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

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

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() . ".";

进一步阅读: