faq обучение настройка
Текущее время: Пн июн 23, 2025 23:57

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Create a IP MAC Port Binding Rule
СообщениеДобавлено: Пт янв 26, 2007 12:45 
Не в сети

Зарегистрирован: Вт апр 04, 2006 15:12
Сообщений: 11
Откуда: Novosibirsk
В вашем руководстве NETSNMP_IP_MAC_Binding пример создания правила. Не разобрался с портами:
Step2. Set up port 1 for the IP Address Entry
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.11.64.1.2.7.2.1.4.192.168.0.100 x 80000000
80000000 ->Port 1
8 -> 1000 (Binary) -> 1000 1 = port1 000 = port2 - port 4

Как посчитать значение 80000000 ?


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

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
Это означает первый порт. Каждый разряд этого числа это порт. Единица в нём означает что порт добавлен по признакам в OID в VLAN.


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

Зарегистрирован: Вт апр 04, 2006 15:12
Сообщений: 11
Откуда: Novosibirsk
ээм, я наоборот хочу вычислить число, которое вписываем в команду по порту или не так понял ваше объяснение.
Например хочу назначить макбиндинг на порт 24 какой "номер" будет в
snmpset -v2c -c private 192.168.0.1 1.3.6.1.4.1.171.11.64.1.2.7.2.1.4.192.168.0.100 x "номер"
?
как он считается


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

Зарегистрирован: Пт май 13, 2005 15:49
Сообщений: 20616
Откуда: D-Link, Moscow
0000 0000 0000 0000 0000 0001 0000 0000 = 00000100 hex


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

Зарегистрирован: Чт янв 25, 2007 17:36
Сообщений: 44
Откуда: Курск
Только сегодня сидел заморачивался с преобразованием.... в результате получился небольшой скриптик:

Код:
#!/bin/bash
BINPORT=""
HEXPORT=""

for (( i=1; i<=32 ; i++ ))
    do
   if [ $i == $1 ]
       then BINPORT=${BINPORT}"1"
       else BINPORT=${BINPORT}"0"
   fi   
    done
   
echo "BIN: $BINPORT"

for (( i=0; i<=7; i++ ))
    do
   case "${BINPORT:$i*4:4}" in
       "0000" ) HEXPORT=${HEXPORT}"0";;
       "0001" ) HEXPORT=${HEXPORT}"1";;
       "0010" ) HEXPORT=${HEXPORT}"2";;
       "0100" ) HEXPORT=${HEXPORT}"4";;
       "1000" ) HEXPORT=${HEXPORT}"8";;
   esac
    done
echo "HEX: $HEXPORT"


Это только преобразование. Номер порта передаётся как параметр. Результат в переменной $HEXPORT
Кто сможет написать компактнее, не забудте поделиться.


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

Зарегистрирован: Пн ноя 03, 2003 22:16
Сообщений: 12
Vovike писал(а):
Кто сможет написать компактнее, не забудте поделиться.


можно написать вот так:
Код:
#!/usr/bin/perl
printf "%8.8X",1<<(32-<>);

кушает со стандартного ввода номер порта и выплевывает в нужном виде
согласитесь, значительно компактнее ;)

_________________
Press RESET to continue...


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

Зарегистрирован: Вт апр 04, 2006 15:12
Сообщений: 11
Откуда: Novosibirsk
ага, работает, спасибо
все же лучше не так сокращенно

Код:
#!/usr/bin/perl
use strict;

my $port = $ARGV[0];
printf "%8.8X",1<<(32-$port);


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 28, 2010 17:47 
Не в сети

Зарегистрирован: Пн май 21, 2007 11:33
Сообщений: 55
а если портов в коммутаторе 52 то надо

Код:
printf "%16.16X",1<<(64-$num);


ибо счётчик там на 64бита надо. А располагает ли кто-то универсальным средством? :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 28, 2010 20:49 
Не в сети

Зарегистрирован: Ср июл 16, 2008 20:32
Сообщений: 99
Откуда: Чебоксары
Писал функции для преобразования списка портов в маску для работы напрямую с Net::SNMP из perl, (не через snmpset).
Сейчас выделил часть в отдельный скрипт: dlink_ports.pl

Преобразовывает список портов в маску - параметр для snmpset и обратно.
Пример:
Код:
./dlink_ports.pl -ports 1,5,7-9
8b800000
./dlink_ports.pl -snmp 8b800000
1,5,7-9


Кол-во портов можно задается ключем -numports


Вернуться наверх
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 29, 2010 10:34 
Не в сети

Зарегистрирован: Пн май 21, 2007 11:33
Сообщений: 55
вот спасибо большое!


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

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


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

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


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

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