Соответствие имени точки доступа из результатов OID беспроводной точки доступа - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь проверить, что AP может быть найдена на моем беспроводном контроллере через PHP.Мне нужно иметь возможность передать имя AP и сопоставить его с найденным списком.Должно быть достаточно просто, но я не перепутал SNMP для галочки.

Я знаю, что OID является правильным для имени.Я использовал страницу просмотра OID Cisco здесь: http://www.oidview.com/mibs/9/CISCO-LWAPP-AP-MIB.html

, которая дала мне древовидное представление:

Object Name                                          Object Identifier
ciscoLwappApMIB ciscoLwappApMIB               (base) 1.3.6.1.4.1.9.9.513
ciscoLwappApMIBNotifs ciscoLwappApMIBNotifs          (base).0
ciscoLwappApMIBObjects ciscoLwappApMIBObjects        (base).1
ciscoLwappAp ciscoLwappAp                            (base).1.1
cLApTable cLApTable                                  (base).1.1.1
cLApEntry cLApEntry                                  (base).1.1.1.1
cLApSysMacAddress cLApSysMacAddress                  (base).1.1.1.1.1
cLApIfMacAddress cLApIfMacAddress                    (base).1.1.1.1.2
cLApMaxNumberOfDot11Slots cLApMaxNumberOfDot11Slots  (base).1.1.1.1.3
cLApEntPhysicalIndex cLApEntPhysicalIndex            (base).1.1.1.1.4
cLApName cLApName                                    (base).1.1.1.1.5

Так что, если я print_r($test);, я получаю следующий список:

Array
(
    [0] => STRING: "My-AP-Name-1"
    [1] => STRING: "My-AP-Name-2"
    [2] => STRING: "My-AP-Name-3"
    [3] => STRING: "My-AP-Name-4"
    [4] => STRING: "My-AP-Name-5"
    ...

Я бы хотел, чтобы все было как можно проще.Примерно так:

    $ap = "My-AP-Name";

    $test = snmp2_walk($host, $community_string, "1.3.6.1.4.1.9.9.513.1.1.1.1.5");

    if ( in_array( $ap, $test ) ) {
        echo "We found $ap";
    } else {
        echo "Sorry, but it looks like $ap cannot be located.";
    }

Неужели нет способа просто вернуть список имен через SNMP?

1 Ответ

0 голосов
/ 04 июня 2019

Таким образом, я смог достичь того, что хотел, просто выполнив проверку strpos для каждого элемента в массиве.Тем не менее, я хотел бы найти более эффективный способ сделать это в случае, если в будущем появится больше точек доступа.

Текущая работа:

foreach ( $test as $key => $name) {
    if ( strpos( $name, $ap ) !== FALSE ) {
        echo "We found $ap";
        return true;
    }
}
...