<?php
require_once 'IPTablesConfig.php';
$ip = isset($_GET['ip'])?$_GET['ip']:"";
if(!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)){
    exit('IP address is incorrect');
}
$iptables = new IPTablesConfig();
$iptables->debug =true;
$rules = $iptables->getAllRules("filter","INPUT");
$have = array_filter($rules, function($t) use ($ip) { return isset($t['s'])&&$t['s'] == $ip."/32"; });
if(count($have)>0){
    exit("OK");
}
$rule = array("s" => $ip,"j" => "ACCEPT");
$insertRule=$iptables->appendRule("filter","INPUT", $rule);
if(!$insertRule){
    exit('Add rule failure');
}
$apply = $iptables->applyNow();
if(!$apply){
    exit('The addition of rules is successful, but not effective');
}
exit('OK');
?>
