2016-03-07 1 views
0

J'essaie de créer un programme qui envoie des requêtes SNMP à certains commutateurs du réseau. En utilisant les outils Net-snmp, je peux envoyer des requêtes get au commutateur en utilisant son nom, et cela fonctionne très bien. Mais SNMP4J nécessite une adresse IP dans CommunityTarget, donc j'obtiens un IllegalArgumentException.Utilisation du nom de l'agent au lieu de l'adresse IP en tant qu'adresse dans SNMP4J

Ceci est la partie pertinente du code:

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); 

Comment puis-je contourner cela?

Répondre

0

Vous pouvez obtenir l'adresse IP en utilisant la résolution DNS, comme ce answer dit:

InetAddress address = InetAddress.getByName(switchName); 
System.out.println(address.getHostAddress());