2016-03-07 2 views
0

Я пытаюсь создать программу, которая отправляет SNMP-запросы некоторым коммутаторам в сети.Использование имени агента вместо IP в качестве адреса в SNMP4J

Используя инструменты Net-snmp, я могу отправить запросы на запрос с помощью своего имени, и он отлично работает. Но SNMP4J требует IP-адрес в CommunityTarget, поэтому я получаю IllegalArgumentException.

Это соответствующая часть кода:

TransportMapping transport = new DefaultUdpTransportMapping(); 
transport.listen(); 

CommunityTarget comtarget = new CommunityTarget(); 
comtarget.setCommunity(new OctetString("public")); 
comtarget.setVersion(SnmpConstants.version1); 
comtarget.setAddress(new UdpAddress("switchName")); // exception happens here 
comtarget.setRetries(2); 
comtarget.setTimeout(1000); 

Как я могу обойти эту проблему?

ответ

0

Вы можете получить IP-адрес с помощью разрешения DNS, как это answer говорит:

InetAddress address = InetAddress.getByName(switchName); 
System.out.println(address.getHostAddress()); 
Смежные вопросы