Php 根据IP地址不工作,将用户重定向到页面

Php 根据IP地址不工作,将用户重定向到页面,php,if-statement,ip-address,Php,If Statement,Ip Address,我正在使用的计算机的IP地址是在$IP中指定的。问题是当$userip时=$ip时,将显示该消息,但不应显示该消息。if语句的第一个版本是理想的页面工作方式。有什么想法/建议吗?提前谢谢 $userip = ($_SERVER['REMOTE_ADDR']); $ip = '172.34.56.202'; if ($userip != $ip) { echo "<h3>" . "ACCESS DENIED. Your IP address is not in the li

我正在使用的计算机的IP地址是在$IP中指定的。问题是当$userip时=$ip时,将显示该消息,但不应显示该消息。if语句的第一个版本是理想的页面工作方式。有什么想法/建议吗?提前谢谢

$userip = ($_SERVER['REMOTE_ADDR']); 
$ip = '172.34.56.202';

if ($userip != $ip) {
    echo "<h3>" . "ACCESS DENIED. Your IP address is not in the list of allowed IPs" . "</h3>";
} else{
    $URL="http://www.yahoo.com";
    header ("Location: $URL");
}
?>
注意:if语句的目的是确保用户从特定计算机访问站点。例如,员工只能从工作站计算机(而不是PC)访问站点。如果他们不在工作站计算机上,则会显示消息。

$userip = ($_SERVER['REMOTE_ADDR']); 
$ip = '172.34.56.202';

if ($userip != $ip) {
    echo "<h3>" . "ACCESS DENIED. Your IP address is not in the list of allowed IPs" . "</h3>";
} else{
    $URL="http://www.yahoo.com";
    header ("Location: $URL");
}
?>
注意:我通过运行“ipconfig/a”ll命令获得$ip。

$userip = ($_SERVER['REMOTE_ADDR']); 
$ip = '172.34.56.202';

if ($userip != $ip) {
    echo "<h3>" . "ACCESS DENIED. Your IP address is not in the list of allowed IPs" . "</h3>";
} else{
    $URL="http://www.yahoo.com";
    header ("Location: $URL");
}
?>
注意:我目前正在使用一个IP地址进行测试,最终将使用多个IP地址进行测试。
$userip = ($_SERVER['REMOTE_ADDR']); 
$ip = '172.34.56.202';

if ($userip != $ip) {
    echo "<h3>" . "ACCESS DENIED. Your IP address is not in the list of allowed IPs" . "</h3>";
} else{
    $URL="http://www.yahoo.com";
    header ("Location: $URL");
}
?>
$userip=($\u SERVER['REMOTE\u ADDR']);
$ip='172.34.56.202';
如果($userip!=$ip){
echo“”“访问被拒绝。您的IP地址不在允许的IP列表中”。”;
}否则{
$URL=”http://www.yahoo.com";
标题(“位置:$URL”);
}
?>
在此版本中,我还尝试更改if语句的操作,但仍然不起作用。仍然会显示错误消息,而不是将用户引导到其他页面:

$userip = ($_SERVER['REMOTE_ADDR']); 
$ip = '172.34.56.202';

if ($userip != $ip) {
    echo "<h3>" . "ACCESS DENIED. Your IP address is not in the list of allowed IPs" . "</h3>";
} else{
    $URL="http://www.yahoo.com";
    header ("Location: $URL");
}
?>
<?php
error_reporting(E_ALL);

$userip = ($_SERVER['REMOTE_ADDR']); 
$ip = '172.34.56.202';

if ($userip == $ip) {
    $URL="http://wt-ws.delta.lasalle.edu/tempProject/timeSheetProject/TimeSheet.php";
    header ("Location: $URL");

} else{
    echo "<h3>" . "ACCESS DENIED. Your IP address is not in the list of allowed IPs" . "</h3>";
}
?>


可以尝试使用相同的比较运算符,例如====

我刚刚测试了上面的代码,对于我创建的页面,它在我这方面工作得很好

$userip = ($_SERVER['REMOTE_ADDR']); 
$ip = '172.34.56.202';

if ($userip != $ip) {
    echo "<h3>" . "ACCESS DENIED. Your IP address is not in the list of allowed IPs" . "</h3>";
} else{
    $URL="http://www.yahoo.com";
    header ("Location: $URL");
}
?>
我唯一的建议就是做

echo($userip); 
查看
$userip
的值。如果您是在机器上安装的测试盒上执行此操作,那么当您查看本地文件时,您的IP很可能是127.0.0.1

请回答您的最新问题 当您使用
ipconfig/a
时,这将为您提供分配给计算机的IP地址。大多数网络使用子网掩码和专用IP地址。例如,如果使用
ipconfig/a
并获得以下范围内的IP地址,则它是一个私有的不可路由IP地址

10.0.0.0 - 10.255.255.255 - Class A
172.16.0.0 - 172.31.255.255 - Class B
192.168.0.0 - 192.168.255.255 - Class C
要查找您的公共IP地址,您可以通过以下几种方式进行:


您是否尝试
回显$userip?你不应该因为用户的IP而禁止他们。许多用户不使用他们真正的IP。IP地址也可能会改变(例如,我的IP地址每天晚上都会改变,而我的IP地址是别人的)。还请记住,猜测链接或以某种方式获取链接是可能的。您应该在链接指向的位置添加一个适当的授权系统。通常的方法是通过
.htaccess
,但我认为您有一个不使用该机制的特定原因(更强大、更通用、更健壮…)@Matt3o12我可能应该在我的帖子中提到这一点。if语句的目的是确保用户从特定的计算机访问站点。例如,员工只能从工作站计算机(而不是PC)访问站点。如果他们不在工作站计算机上,则显示消息。我很感激你的建议。@user3666355,这与我的建议不同。请记住,员工可能会使用其本地IP地址访问服务器。此IP与全局IP地址不同。是lifehackers关于它的一篇好文章。使用正则表达式允许同一网络上的多个工作站进行访问也可能会有所帮助。但是,该页面显示的IP与我通过运行ipconfig/all获得的$IP不同。那么,代码中的IP和echo中的IP是否相同?我应该将我的IP更改为页面上显示的IP吗?谢谢。是的,这更可能是你的私人IP,而不是你的公共IP。要获得公共IP,请转到ipchicken.com之类的网站