Вот тут написал на досуге для 2108
Код:
<?php
$snmp_host = "адрес_хоста";
$snmp_comm = "камьюнити";
$new_mac = "мак_для_прописки_формата_001122334455";
$new_port = "на_какной_порт_залочить";
$new_vlan_id = "в какой_влан_залочить";
$a = snmpwalk("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.1");
foreach ($a as $val) {
$num = explode(" ", "$val");
$mac=explode (" ", snmpget("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.2.$num[1]"));
$port=explode (" ", snmpget("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.3.$num[1]"));
$vlan=explode (" ", snmpget("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.4.$num[1]"));
echo "$num[1] "; echo "$mac[1]"; echo "$mac[2]"; echo "$mac[3]"; echo "$mac[4]"; echo "$mac[5]"; echo "$mac[6] "; echo "$port[1] "; echo "$vlan[1]\n";
$last_val=$num[1];
};
$next_val=$num[1] + 1;
snmpset ("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.5.$next_val", "i" , "4");
sleep (30);
snmpset ("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.2.$next_val", "x" , "$new_mac");
sleep (30);
snmpset ("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.3.$next_val", "i" , "$new_port");
sleep (30);
snmpset ("$snmp_host", "$snmp_comm", "1.3.6.1.4.1.171.10.61.2.21.3.1.4.$next_val", "i" , "$new_vlan_id");
?>
Собственно коннектится к свитчу, считывает статические маки и дописывает один. Прцедура занимает порядка 2 минут, так как под нагрузкой 2108 работает с снмп очень медленно и команды даются с интервалом в 30 секунд.