SNMP使用端口161。我写了一小段代码来检查设备是否在此端口上运行SNMP。
public boolean isPortOpen(String ip, int port, int timeout) {
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(ip, port), timeout);
socket.close();
logger.info(threadId, "Port is Open : " + ip + ":" + port );
return true;
} catch (IOException ex) {
logger.error(threadId, "isPortOpen : " + ip + ":" + port + "\t"+ ex.getMessage());
return false;
}
}
但令我惊讶的是,代码始终为端口161 返回false,即使该框正在运行SNMP,而PortQryV2等其他工具对端口161返回true。有人可以帮忙! ! TIA