#networking #snmp
#сеть #snmp
Вопрос:
Как получить IP-адрес подключенного компьютера и Mac-адрес SNMP-устройства.
Кэш ARP не предоставляет правильных сведений.
Комментарии:
1. вы пытаетесь получить это из результата языка программирования или из командной строки или cmd?
Ответ №1:
Пример для команд оболочки Linux (на момент написания нет тега для других языков или Windows)
При условии, что на компьютере, который вы хотите запросить, действительно запущен демон SNMP (обычно snmpd из Net-SNMP под Linux) и что вы знаете, как с ним можно разговаривать (версии 1, 2c или 3 с различными именами сообщества или именами пользователей / паролями / кодировкой для версии v3), вы можете отправлять следующие запросы SNMP:
Для теста я запустил snmpd на виртуальной машине CentOS 7, основным адресом которой был 192.168.174.128.
Я выбираю порт 1610 вместо традиционного 161, чтобы не использовать sudo или setcap (snmpd). Содержимое файла snmpd.conf выходит за рамки этого вопроса.
Это первое для IP-адресов
snmptable -v 2c -c private 192.168.174.128:1610 ipAddrTable
SNMP table: IP-MIB::ipAddrTable
ipAdEntAddr ipAdEntIfIndex ipAdEntNetMask ipAdEntBcastAddr ipAdEntReasmMaxSize
127.0.0.1 1 255.0.0.0 0 ?
192.168.122.1 3 255.255.255.0 1 ?
192.168.174.128 2 255.255.255.0 1 ?
Вторая команда (с напечатанными только 3 столбцами) для MAC
snmptable -v 2c -c private 192.168.174.128:1610 ifTable | awk -c '{print $1 "t" $2 "tt" $6}'
SNMP table:
ifIndex ifDescr ifPhysAddress
1 lo up
2 ens33 0:c:29:53:aa:c6
3 virbr0 52:54:0:e6:6b:2f
4 virbr0-nic 52:54:0:e6:6b:2f
Когда мы проверяем в CentOS 7, мы получаем
ifconfig
ens33: ... mtu 1500
inet 192.168.174.128 netmask 255.255.255.0 broadcast 192.168.174.255
inet6 ...
ether 00:0c:29:53:aa:c6 netmask 255.0.0.0
...
lo: ... mtu 65536
inet 127.0.0.1
...
virbr0: ... mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:e6:6b:2f ...
...
Дополнительная команда командной строки:
snmptranslate -Oaf IF-MIB::ifTable
.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable
и
snmptranslate -Oaf IP-MIB::ipAddrTable
.iso.org.dod.internet.mgmt.mib-2.ip.ipAddrTable
Я не знаю, почему / если существует одна таблица, содержащая обе информации.