Php 比较IP地址 函数getIp(){ 返回“”; }

Php 比较IP地址 函数getIp(){ 返回“”; },php,ip,Php,Ip,我想调整或重做此操作,以便只能从本地主机或我的isp服务器执行某些操作。我可以在127.0.0.1中使用一点JavaScript,但在其他版本中则不行 感谢任何帮助;谢谢您确实希望完全在服务器上完成此操作。如果你在客户端检查IP,那么人们可以很容易地绕过它。例如,使用Firebug之类的web检查器在浏览器中修改代码 幸运的是,在服务器端执行此操作非常简单: $\u SERVER['REMOTE\u ADDR']变量是一个简单的字符串,因此您应该能够使用字符串比较来检查所需的IP 例如: fun

我想调整或重做此操作,以便只能从本地主机或我的isp服务器执行某些操作。我可以在127.0.0.1中使用一点JavaScript,但在其他版本中则不行


感谢任何帮助;谢谢

您确实希望完全在服务器上完成此操作。如果你在客户端检查IP,那么人们可以很容易地绕过它。例如,使用Firebug之类的web检查器在浏览器中修改代码

幸运的是,在服务器端执行此操作非常简单:

$\u SERVER['REMOTE\u ADDR']
变量是一个简单的字符串,因此您应该能够使用字符串比较来检查所需的IP

例如:

function getIp() {
  return "<?php echo $_SERVER['REMOTE_ADDR']; ?>";
}


JavaScript与此有什么关系?你应该澄清你的问题。如果客户端禁用了JavaScript,那怎么办?看起来您正在尝试实现某种安全性。不是这样的。不要忘记也检查
::1
。永远不要使用javascript来做属于服务器端的事情。谢谢大家,特别是St3fan。它起作用了。我应该解释我所做的不是一个软件解决方案,而是一个使用软件的解决方案。我主要关心的是其他部分,但在我看来,我需要做一些编码,作为一种专业帮助的性能规范。问题的标题是“比较IP地址”。请注意,字符串比较通常不是比较ip地址的好方法!原因是有多个字符串表示同一ip。例如,IP
127.0.0.1
等于
127.000.000.001
127.00.000.1
,甚至等于
0:0:0:0:ffff:7f00:1
(如ipv6),仅举几例。只有当您知道您的IP是某种规格化格式时,才能进行字符串比较。可能是
$\u SERVER['REMOTE\u ADDR']
做了这件事(我没有找到任何相关信息),但也可能取决于PHP版本、操作系统等。为了安全起见,最好使用
如果(ip2long($\u SERVER['REMOTE\u ADDR'])==ip2long(“127.0.0.1”)
(仅适用于ipv4)。
<?php
   if ($_SERVER['REMOTE_ADDR'] == "127.0.0.1" || $_SERVER['REMOTE_ADDR'] == "1.2.3.4") {
       echo "Show secret things here";
   }
?>