我的项目:
我正在尝试使用强制网络门户来共享Internet连接,但客户端必须首先同意用户协议。之后,如果他留在门户页面,他可以连接互联网。
问题:
我的问题是检查客户端是否仍在我的页面上以向他提供连接。
为此,我尝试每10秒在我的iptables中添加他的MAC地址作为例外,因为我每隔15秒清除所有MAC异常(除非@MAC超过两次,我让一个)。
我的文件夹包含:
index.php(显示所有内容的主页面)和mac.php(我在其中添加了@MAC的例外)
我的mac.php:
<?php
$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;
$arp=`arp -a $ipAddress`;
$lines=explode(" ", $arp);
$macAddr=$lines[3];
echo exec("sudo /sbin/iptables -t nat -I PREROUTING -m mac --mac-source $macAddr -j ACCEPT");
echo exec("sudo /sbin/iptables -I FORWARD -m mac --mac-source $macAddr -j ACCEPT");
?>
我已经在我的index.php中尝试了这个:
<script>
setInterval(
(function () {
$("#mac").load("mac.php");
}), 10000);
</script>
<div id="mac"></div>
和此:
<script>
setInterval(
(function () {
$("#mac").load("mac.php #mac");
}), 10000);
</script>
<div id="mac">
<?php
$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;
$arp=`arp -a $ipAddress`;
$lines=explode(" ", $arp);
$macAddr=$lines[3];
echo exec("sudo /sbin/iptables -t nat -I PREROUTING -m mac --mac-source $macAddr -j ACCEPT");
echo exec("sudo /sbin/iptables -I FORWARD -m mac --mac-source $macAddr -j ACCEPT");
?>
</div>
我已经尝试过其他替代方案:
从现在开始工作的唯一方法是每10秒刷新一次页面。但是你可能知道,这不是最好的方式......
我正在使用Linux系统。
感谢您的帮助
答案 0 :(得分:0)
而true将执行无限 mac.php:
newAspect.entityState.isDetached()
您需要调用此页面的所有其他页面。比如前。
abc.php
<?php
function checkMac(){
$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;
$arp=`arp -a $ipAddress`;
$lines=explode(" ", $arp);
$macAddr=$lines[3];
echo exec("sudo /sbin/iptables -t nat -I PREROUTING -m mac --mac-source $macAddr -j ACCEPT");
echo exec("sudo /sbin/iptables -I FORWARD -m mac --mac-source $macAddr -j ACCEPT");
}
?>
希望这对你有用。
答案 1 :(得分:0)
我解决了它:
<script language="JavaScript">
function mac() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
xmlhttp.responseText;
};
xmlhttp.open("GET", "mac.php", true);
xmlhttp.send();
}
mac();
setInterval(mac, 10000);
</script>