За последние 24 часа нас посетили 22128 программистов и 1102 робота. Сейчас ищут 750 программистов ...

Как получить красивый ответ от snmp в xml

Тема в разделе "PHP для профи", создана пользователем Kvandaik, 23 янв 2019.

Метки:
  1. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    Посоветуйте как сделать чтоб было так
    Код (Text):
    1. <args>
    2. <oid id="iso.3.6.1.4.1.9.2.1.58.0" type2=192.168.0.1>5</oid>
    3. <oid id="iso.3.6.1.2.1.1.3.0" type2=192.168.0.1>80</oid>
    4. <oid id="iso.3.6.1.4.1.9.2.1.2.0" type2=192.168.0.1>power-on</oid>
    5. <oid id="iso.3.6.1.4.1.9.9.13.1.4.1.3.1004" type2=192.168.0.1>1</oid>
    6. </args>
    7.  
    8. <args>
    9. <oid id="iso.3.6.1.4.1.9.2.1.58.0" type2=192.168.0.2>21</oid>
    10. <oid id="iso.3.6.1.2.1.1.3.0" type2=192.168.0.2>57</oid>
    11. <oid id="iso.3.6.1.4.1.9.2.1.2.0" type2=192.168.0.2>power-on</oid>
    12. <oid id="iso.3.6.1.4.1.9.9.13.1.4.1.3.1004" type2=192.168.0.2>1</oid>
    13. </args>
    Пример кода
    Код (Text):
    1. while($row = sqlsrv_fetch_array($stmt))
    2. {
    3. $urls=$row["ip"];
    4. // echo '<pre>'.$urls ;
    5. $arrays=array('cpu' =>'.1.3.6.1.4.1.9.2.1.58.0','aptime' =>'.1.3.6.1.2.1.1.3.0','power' =>'.1.3.6.1.4.1.9.2.1.2.0','fan' =>'.1.3.6.1.4.1.9.9.13.1.4.1.3.1004');
    6. foreach ($arrays as $key => $value) {
    7. //set_time_limit(1200);
    8. $dats= snmp3_real_walk($urls, 'login', 'authNoPriv', 'MD5', 'pass', '', '', $value);
    9. $str12=array('<args>');
    10. foreach($dats as $key6 => $valueer){
    11.  
    12. $a='<oid id='.json_encode($key6).' type2='.$urls.'>'.json_encode($valueer).'</oid>';
    13.  
    14. //echo "$a\n";
    15. $str12[]="$a\n";
    16. }
    17. $str12[]='</args>';
    18.  
    19. $aa=implode("",$str12);
    20. echo "$aa\n";
    21. }
    22. }
    Ответ
    Код (Text):
    1. <args><oid id="iso.3.6.1.4.1.9.2.1.58.0" type2=192.168.0.1>"INTEGER: 5"</oid>
    2. </args>
    3. <args><oid id="iso.3.6.1.2.1.1.3.0" type2=192.168.0.1>"Timeticks: (694414565) 80 days, 8:55:45.65"</oid>
    4. </args>
    5. <args><oid id="iso.3.6.1.4.1.9.2.1.2.0" type2=192.168.0.1>"STRING: \"power-on\""</oid>
    6. </args>
    7. <args><oid id="iso.3.6.1.4.1.9.9.13.1.4.1.3.1004" type2=192.168.0.1>"INTEGER: 1"</oid>
    8. </args>
    9.  
    10. <args><oid id="iso.3.6.1.4.1.9.2.1.58.0" type2=192.168.0.2>"INTEGER: 21"</oid>
    11. </args>
    12. <args><oid id="iso.3.6.1.2.1.1.3.0" type2=192.168.0.2>"Timeticks: (493399481) 57 days, 2:33:14.81"</oid>
    13. </args>
    14. <args><oid id="iso.3.6.1.4.1.9.2.1.2.0" type2=192.168.0.2>"STRING: \"power-on\""</oid>
    15. </args>
    16. <args><oid id="iso.3.6.1.4.1.9.9.13.1.4.1.3.1004" type2=192.168.0.2>"INTEGER: 1"</oid>
    17. </args>
     
  2. Kvandaik

    Kvandaik Новичок

    С нами с:
    5 июл 2018
    Сообщения:
    121
    Симпатии:
    1
    Сделал
    Код (Text):
    1. while($row = sqlsrv_fetch_array($stmt))
    2. {
    3.   $urls=$row["ip"];
    4. // echo '<pre>'.$urls ;
    5. //$str12=array('<args>');
    6. $arrays=array('cpu' =>'.1.3.6.1.4.1.9.2.1.58.0','power' =>'.1.3.6.1.4.1.9.2.1.2.0','fan' =>'.1.3.6.1.4.1.9.9.13.1.4.1.3.1004');
    7. $str12=array('<args>');
    8. foreach ($arrays as $key => $value) {
    9.  
    10.  
    11. //set_time_limit(1200);
    12.   $dats= snmp3_real_walk($urls, 'logu', 'authNoPriv', 'MD5', 'pass', '', '', $value);
    13. //$str12=array('<args>');
    14. foreach($dats as $key6 => $valueer){
    15. $valueer=str_replace("\\","",str_replace("\"","",str_replace("STRING: ","",str_replace("INTEGER: ","",$valueer))));
    16. $str12[]='<oid id='.json_encode($key6).' type2='.$urls.'>'.$valueer.'</oid>'."\n";
    17. }
    18. }
    19.  
    20.  
    21.  
    22.  
    23. $dats1= snmp3_real_walk($urls, 'logu', 'authNoPriv', 'MD5', 'pass', '', '', '.1.3.6.1.2.1.1.3.0');
    24. $str13=array('<args>');
    25. foreach($dats1 as $key7 => $valueet){
    26. $valueet=(int)explode(')',$valueet)[1];
    27. $str13[]='<oid id='.json_encode($key7).' type2='.$urls.'>'.$valueet.'</oid>'."\n";
    28. //print_r($valueet);
    29. //echo "$a\n";
    30. //$str13[]="$b\n";
    31. }
    32. //$str12[]='</args>';
    33.  
    34. $str13[]='</args>';
    35.  
    36. $result=array_merge($str12,$str13);
    37. $result2=array_unique($result);
    38. $result2=implode("",$result2);
    39. print_r("$result2\n");
    40. }