如何从表单邮件中获取 IP 地址

问题描述 投票:0回答:2

我的联系表中有以下代码行,目的是通过该表获取访问者的 IP 地址。它而是返回默认值。我如何让它返回访问者的IP?我的潜在客户使用表格与我联系,但垃圾邮件发送者也这样做。

<input type=hidden name="env_report" value="REMOTE_HOST,REMOTE_ADDR">
javascript dom-events
2个回答
1
投票

你到底希望它做什么?

如果您需要 IP 地址,请查看表单生成的 HTTP 请求中的客户端地址。如果表单在客户端动态创建电子邮件(即不在 HTTP 请求中发回表单数据),您想要填充一些值,那么您需要从生成 HTML 的代码中设置值(javascript不知道 IP 地址)例如用 PHP ....

<input type=hidden name="env_report" value="<?php print $_SERVER['REMOTE_ADDR']; ?>">

只有有人修改电子邮件的内容是微不足道的,除非您还包括一些篡改检测....

<input type=hidden name="anti_tamper" value="<?php 
    print md5('s3cr3t' . $_SERVER['REMOTE_ADDR']); 
?>">

...并在收据上进行验证。


0
投票

你不能直接从 HTML 中获取它。使用服务器端语言(如 PHP)获取它的最佳方法。在 PHP 中可以使用 $_SERVER['REMOTE_ADDR'] 来获取客户端的 IP 地址。这是我前一段时间写的关于Getting real client IP address in PHP的博客文章。

没有可靠的方法使用 JavaScript 获取 IP 地址,但您可以查看这个问题了解更多细节。

因此,当表单提交到您的服务器时,您需要检查 IP 地址,然后在那里识别提交的是垃圾邮件发送者还是普通用户。

© www.soinside.com 2019 - 2024. All rights reserved.