function getIp() {
return "<?php echo $_SERVER['REMOTE_ADDR']; ?>";
}
我希望能够调整或重新制作这个程序,以便只有从本地主机或我的ISP服务器才能执行特定操作。我可以使用一些JavaScript适用于127.0.0.1的情况,但是对于其他情况就没办法了。
感谢您的帮助;谢谢。
您真的希望完全在服务器上完成此操作。如果在客户端检查IP,则人们可以非常容易地通过使用像Firebug这样的Web检查器在其浏览器中修改您的代码来绕过该检查。
幸运的是,服务器端处理相当简单:
$_SERVER ['REMOTE_ADDR']
变量是一个简单的字符串,因此您应该能够使用字符串比较来检查您想要的IP。
例如:
<?php
if ($_SERVER['REMOTE_ADDR'] == "127.0.0.1" || $_SERVER['REMOTE_ADDR'] == "1.2.3.4") {
echo "Show secret things here";
}
?>
127.0.0.1
等于 127.000.000.001
、127.00.000.1
或甚至 0:0:0:0:0:ffff:7f00:1
(作为ipv6),只是举几个例子。如果您知道IP以某种规范化格式存在,则可以进行字符串比较。可能 $_SERVER ['REMOTE_ADDR']
进行了这样的操作(我没有找到相关资料),但这也可能取决于PHP版本、操作系统等。 - Christopher K.if(ip2long($_SERVER['REMOTE_ADDR']) === ip2long("127.0.0.1"))
(仅适用于IPv4)。 - Christopher K.
::1
。 - glglgl