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

时间:2011-12-28 17:33:15

标签: javascript javascript-events

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

<input type=hidden name="env_report" value="REMOTE_HOST,REMOTE_ADDR">

2 个答案:

答案 0 :(得分: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']); 
?>">

...并在收到时验证。

答案 1 :(得分:0)

您无法直接从HTML获取它。使用服务器端语言(如PHP)获取它的最佳方法。在PHP中,使用 $ _ SERVER ['REMOTE_ADDR'] 来获取客户端IP地址。这是我之前在Getting real client IP address in PHP上写过的一篇博文。

使用JavaScript获取IP地址没有可靠的方法,但您可以在this question上看到有关它的更多详细信息。

因此,您希望在将表单提交到服务器时检查IP地址,然后在那里确定提交的是垃圾邮件发送者还是普通用户。