Untitled
unknown
plain_text
a year ago
2.8 kB
7
Indexable
<?php
// Введіть дані для SNMP-запиту
$host = "172.20.253.10"; // IP-адреса SNMP-пристрою
$community = "KiM-PuB_RO"; // SNMP community string
$vlanid = "4011"; // VLAN ID
// OIDs
$macOid = "iso.3.6.1.2.1.17.7.1.2.2.1.2"; // dot1qTpFdbPort
$snmp_macOid = snmprealwalk($host, $community, $macOid . "." . $vlanid);
#var_dump($snmp_macOid);
$macMap = [];
foreach ($snmp_macOid as $index => $value) {
$index = str_replace($macOid . "." . $vlanid . ".", '', $index);
########## переробка в мак від октетного вигляду
$octets = explode('.', $index);
$macAddress = array_map(function($octet) {
return str_pad(dechex($octet), 2, '0', STR_PAD_LEFT);
}, $octets);
$index = strtoupper(implode(':', $macAddress));
$value = str_replace("INTEGER: ", '', $value); // Витягуємо порт
$macMap[$index] = $value;
}
var_dump($macMap);
$i = 0;
foreach ($macMap as $mac_address => $value) {
# print($vlanid . "\n");
# print($mac_address . "\n");
$id = $value;
# print($id . "\n");
$iFindex = snmpwalk($host, $community, "iso.3.6.1.2.1.17.1.4.1.2." . $id);
$iFindex = str_replace("INTEGER: ", '', $iFindex[0]);
# print($iFindex . "\n");
$portName = snmpwalk($host, $community, "iso.3.6.1.2.1.31.1.1.1.1." . $iFindex);
$portName = str_replace(['STRING: ', '"'], '', $portName[0]); // Витягуємо порт
# print($portName . "\n");
$portDescription = snmpwalk($host, $community, "iso.3.6.1.2.1.31.1.1.1.18." . $iFindex);
$portDescription = str_replace(['STRING: ', '"'], '', $portDescription[0]); // Витягуємо порт
# print($portDescription . "\n");
print($vlanid . " " . $mac_address . " " . $portName . " " . $portDescription . "\n");
$data[$i] = [
'vlanid' => $vlanid,
'mac_address' => $mac_address,
'port_name' => $portName,
'port_description' => $portDescription
];
#var_dump($data);
$i=$i+1;
}
var_dump($data);
#if KIM-INTERCONNET && anyone = good.
$kimInterconnectExists = false;
$anyOtherExists = false;
foreach ($data as $record) {
if ($record['port_description'] === 'KIM-INTERCONNET') {
$kimInterconnectExists = true;
} else {
$anyOtherExists = true;
}
// Якщо обидві умови виконані, зупиняємо цикл
if ($kimInterconnectExists && $anyOtherExists) {
break;
}
}
// Виконуємо дію, якщо умови виконані
if ($kimInterconnectExists && $anyOtherExists) {
echo "KIM-INTERCONNET існує і є ще один запис";
} else {
echo "Умови не виконані";
}
Editor is loading...
Leave a Comment