我想限制对未连接到特定公司的某个WIFI的用户的访问权限。 例如,我们有一家公司,这家公司有2个不同的WIFI网络可以连接。如果客户端通过其中一个WIFI连接,我只想访问一个页面。
以下PHP脚本在没有IPv4地址的情况下完美运行:
if(!in_array($_SERVER['REMOTE_ADDR'], $ip_adres_allow) && !in_array($_SERVER["HTTP_X_FORWARDED_FOR"], $ip_adres_allow)) {
die("You can't access this webpage, please try again by your employee.");
exit();
}
$ ip_adres_allow - >存储在数据库中的值数组
我知道每个WIFI的IPv4地址是相同的,它们不会改变。但是IPv6地址是一样的吗?我已经跟踪了公司的一些IPv6地址,他们似乎从2000:980开始:ce5:1:XXXX:XXXX:XXXX:XXXX。 (而X的不一样)这是否意味着WIFI有一系列的IPv6?
有没有办法修改上面的PHP脚本来检查客户端是否连接到其中一个WIFI?或者这个脚本是否仍然有效?因为数据库是使用IPv6和IPv4地址进行硬编码的。如果IPv6是一个地址,可能有人连接到WIFI但无法访问该页面,因为它与数据库中的值不完全匹配。
如果我错了,请纠正我。
感谢阅读。
答案 0 :(得分:-1)
正如我们在聊天中所讨论的,下面是一个示例代码,可让您了解如何执行检查。
$checkip = $_SERVER['Something with IP'];
$validate = '';
if($checkip == $_SERVER['Some IPv4'])
{
$ip = the IPv4 address
$validate = 4;
}
else
{
$ip = the ipv6 IP
$validate = 6;
}
if($validate == 4)
{
$ip = echo substr($ip, 0, ???); // IPv4 address
}
else
{
$ip = substr($ip, 0, 15); // 2000:950:ac2:3
}
再说一遍:这只是为了给你一个想法。您需要创建自己的函数才能正确使用它。我建议在登录时将其设为函数,并为函数提供变量。因此,您不必修改其他公司的脚本,只需修改您发送的变量。 (函数可以简单地返回true
或false
;