in bigtop-manager-agent/src/main/java/org/apache/bigtop/manager/agent/monitoring/AgentHostMonitoring.java [176:199]
private static String getAgentHostIPv4addr(HardwareAbstractionLayer hal, String ipv4DefaultGateway)
throws UnknownHostException {
for (NetworkIF networkIF : hal.getNetworkIFs()) {
String[] iPv4addr = networkIF.getIPv4addr();
if (null == iPv4addr || iPv4addr.length == 0) {
continue;
}
short subnetMaskLen = networkIF.getSubnetMasks()[0];
String subnetMask = "255.255.255.0";
if (subnetMaskLen == 8) {
subnetMask = "255.0.0.0";
} else if (subnetMaskLen == 16) {
subnetMask = "255.255.0.0";
}
List<InterfaceAddress> interfaceAddresses =
networkIF.queryNetworkInterface().getInterfaceAddresses();
for (InterfaceAddress ifaddr : interfaceAddresses) {
if (null != ifaddr.getBroadcast() && sameSubnet(iPv4addr[0], subnetMask, ipv4DefaultGateway)) {
return iPv4addr[0];
}
}
}
return "0.0.0.0";
}