faq обучение настройка
Текущее время: Ср авг 27, 2025 08:31

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: IP+MAC+Port Binding по snmp для PHP
СообщениеДобавлено: Сб июн 02, 2007 21:04 
Не в сети

Зарегистрирован: Вс фев 11, 2007 20:50
Сообщений: 26
Наваял функции на php которые позволяют по snmp считать с коммутатора таблицу с существующими IP+MAC+Port Binding, записать запись в эту таблицу, и удалить запись из таблицы.

данные о коммутаторе (ip, community string, oid) берутся из BD MySQL. у меня работает с des-3828 и des-3526, но в принципе, при наличии oid можно использовать с любым другим, поддерживающим эту функцию.

у меня это встроено в билинговую систему. думаю, что без проблем интегрируется в любую другую систему.

кому интересно -- пишите, вышлю.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Сб июн 02, 2007 21:12 
Не в сети

Зарегистрирован: Сб дек 02, 2006 18:13
Сообщений: 101
Откуда: Новосибирск
Предложение к D-Link. Может стоит сделать какой-то репозитарий исходных кодов для управления различными коммутаторами, которые присылают пользователи? На форуме уже много такого было, со временем же теряется.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс июн 03, 2007 11:14 
Не в сети
Сотрудник D-LINK
Сотрудник D-LINK

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
Мы всегда за. Высылайте информацию, подумаем как выложить.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс июн 03, 2007 13:07 
Не в сети

Зарегистрирован: Чт дек 28, 2006 17:40
Сообщений: 101
Откуда: Чебоксары
Вот тут написал на досуге для 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 секунд.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB