2017-12-28 5 views
0

주소 목록에 주소를 추가하고 존재하지 않는 경우 제거하는 PHP API에 대한 도움이 필요합니다.MikroTik PHP API : 기존 IP> 방화벽> 주소 목록 추가 또는 제거

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); 
    } 

답변

0

내 문제가 해결되었습니다.

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); 
     } 
    } 
: 여기

내 작업 코드
관련 문제