MikroTik PHP API:添加或删除现有 IP>防火墙>地址列表
MikroTik PHP API: Add, or remove if existing IP>Firewall>Address-list
我需要有关 PHP API 的帮助,以便将地址添加到地址列表(如果它不存在)和删除(如果它存在)。
我正在使用 https://wiki.mikrotik.com/wiki/API_PHP_class 的 routeros_api.class.php。
我已经试过了,删除部分工作正常,但在删除之前没有先检查它是否存在,但代码的第一部分没有,它只是在 运行.
时挂起
if ($datalimitexceeded == "1") {
$API->write('/ip/firewall/address-list/print', false);
$API->write('?comment='.$comment, false);
$API->write('?address='.$site_ip, false);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
if(count($ARRAY)>0){
$API->write("/ip/firewall/address-list/add",false);
$API->write("=.id=".$ARRAY[0]['.id'],false);
$API->write('=list='.$list,false);
$API->write('=address='.$site_ip,false);
$API->write('=comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
} else {
$API->write("/ip/firewall/address-list/add",false);
$API->write('=list='.$list,false);
$API->write('=address='.$address,false);
$API->write('=comment='.$comment,false);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
}
修复并解决了我的问题!
这是我的工作代码:
if ($datalimitexceeded == "1") {
$API->write('/ip/firewall/address-list/print',false);
$API->write('?comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
if(count($ARRAY)>0){
$API->write('/ip/firewall/address-list/set',false);
$API->write("=.id=".$ARRAY[0]['.id'],false);
$API->write('=disabled=no',true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
} else {
$API->write('/ip/firewall/address-list/add',false);
$API->write('=list='.$list,false);
$API->write('=address='.$site_ip,false);
$API->write('=comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
}
}
if ($datalimitexceeded == "0") {
$API->write('/ip/firewall/address-list/print',false);
$API->write('?comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
if(count($ARRAY)>0){
$API->write('/ip/firewall/address-list/remove', false);
$API->write('=.id=' . $ARRAY[0]['.id']);
$READ = $API->read(false);
}
}
我需要有关 PHP API 的帮助,以便将地址添加到地址列表(如果它不存在)和删除(如果它存在)。
我正在使用 https://wiki.mikrotik.com/wiki/API_PHP_class 的 routeros_api.class.php。
我已经试过了,删除部分工作正常,但在删除之前没有先检查它是否存在,但代码的第一部分没有,它只是在 运行.
时挂起if ($datalimitexceeded == "1") {
$API->write('/ip/firewall/address-list/print', false);
$API->write('?comment='.$comment, false);
$API->write('?address='.$site_ip, false);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
if(count($ARRAY)>0){
$API->write("/ip/firewall/address-list/add",false);
$API->write("=.id=".$ARRAY[0]['.id'],false);
$API->write('=list='.$list,false);
$API->write('=address='.$site_ip,false);
$API->write('=comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
} else {
$API->write("/ip/firewall/address-list/add",false);
$API->write('=list='.$list,false);
$API->write('=address='.$address,false);
$API->write('=comment='.$comment,false);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
}
修复并解决了我的问题!
这是我的工作代码:
if ($datalimitexceeded == "1") {
$API->write('/ip/firewall/address-list/print',false);
$API->write('?comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
if(count($ARRAY)>0){
$API->write('/ip/firewall/address-list/set',false);
$API->write("=.id=".$ARRAY[0]['.id'],false);
$API->write('=disabled=no',true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
} else {
$API->write('/ip/firewall/address-list/add',false);
$API->write('=list='.$list,false);
$API->write('=address='.$site_ip,false);
$API->write('=comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
}
}
if ($datalimitexceeded == "0") {
$API->write('/ip/firewall/address-list/print',false);
$API->write('?comment='.$comment,true);
$READ = $API->read(false);
$ARRAY = $API->parseResponse($READ);
if(count($ARRAY)>0){
$API->write('/ip/firewall/address-list/remove', false);
$API->write('=.id=' . $ARRAY[0]['.id']);
$READ = $API->read(false);
}
}