如果我用空白的IP地址阻止用户,会影响无辜的非技术用户吗?

我运行一个匿名评论function的网站。 用户可以标记对方的滥用行为; 标志绑定到一个IP地址(通过PHP从$_SERVER['REMOTE_ADDR'] )。

我注意到,99%的标志是一个空白的IP。

我想提出一个消息,说:“一个IP地址是需要评论”,不允许空白的IP。

对于一个非恶意的,只是想要隐私的精通电脑的人来说,我并不太在意。 他们可以自己决定是否重视隐私或评论的能力。

我所关心的是阻止一个没有意识到自己没有IP地址的非技术和非恶意用户,因此当他们无法发表评论时就会感到困惑。 有没有这种情况发生?

基于IP的networking规则#1。 每个人都在沟通它有一个IP。 您可以通过第三方来伪装,但您仍然拥有公共IP。 没有例外。 互联网是一个基于IP的networking。 我怀疑你的代码有一些不好的逻辑。

这些variables也可能只是没有返回预期的结果,因此是空白的。 你可以尝试这样的事情:

  if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { if ($_SERVER["HTTP_CLIENT_IP"]) { $proxy = $_SERVER["HTTP_CLIENT_IP"]; } else { $proxy = $_SERVER["REMOTE_ADDR"]; } $ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else { if ($_SERVER["HTTP_CLIENT_IP"]) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } else { $ip = $_SERVER["REMOTE_ADDR"]; } } echo "Your IP $ip<BR>\n"; if (isset($proxy)) { echo "Your proxy IP is $proxy<BR>\n"; } 

从PHP手册页收集: http : //www.php.net/manual/en/language.variables.predefined.php#31724