private String getPid() { final String name = ManagementFactory.getRuntimeMXBean().getName(); if (name != null && name.contains("@")) { return name.split("@")[0]; } return name; }
public synchronized static String getLocalAddress() throws Exception { if (localIPAddress != null) return localIPAddress;
/* loop to Ethernet cards, find a valid ip */ final Enumeration<NetworkInterface> enumeration = NetworkInterface.getNetworkInterfaces(); InetAddress ipv6Address = null; while (enumeration.hasMoreElements()) { final NetworkInterface networkInterface = enumeration.nextElement(); final Enumeration<InetAddress> en = networkInterface.getInetAddresses(); while (en.hasMoreElements()) { final InetAddress address = en.nextElement(); if (!address.isLoopbackAddress()) { if (address instanceof Inet6Address) { ipv6Address = address; } else { /* use ipv4 first */ return normalizeHostAddress(address); } }
}
}
/* return ipv6 if no ipv4 */ if (ipv6Address != null) { return normalizeHostAddress(ipv6Address); } final InetAddress localHost = InetAddress.getLocalHost(); localIPAddress = normalizeHostAddress(localHost); return localIPAddress; }