我正在尝试制作一个程序,将SNMP查询发送到网络中的某些交换机。
使用Net-snmp工具,我可以使用其名称向交换机发送get请求,并且它可以正常工作。但SNMP4J需要CommunityTarget
中的IP地址,因此我得到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 :(得分:0)
您可以使用DNS解析获取IP地址,如answer所示:
InetAddress address = InetAddress.getByName(switchName);
System.out.println(address.getHostAddress());