Я пытаюсь получить локальный IP-адрес с Linux-машины НО НЕ получить loopback.
Для этого я использую следующий код (я не уверен, что я делаю правильно):Как я могу получить фактический IP-адрес в Linux-машине от Java
NetworkInterface ni = NetworkInterface.getByName("eth0");
Enumeration<InetAddress> inetAddresses = ni.getInetAddresses();
while(inetAddresses.hasMoreElements()) {
InetAddress ia = inetAddresses.nextElement();
if(!ia.isLinkLocalAddress()) {
//this is not loopback
}
}
Когда я запускаю это я получаю 2 IP-адреса (я был заинтересован только в одном из них) который когда я делаю ifconfig
, я вижу один (тот, который я хочу получить) в записи для eth0
, а другой - в записи для eth0:54
.
Я даже не знаю, что такое eth0:54
.
Как я могу получить IP-адрес, который я хочу?
* «Я пытаюсь получить ..» * Забудьте, что вы пытаетесь получить на данный момент, и описать то, что вы пытаетесь достичь. И я имею в виду: какую функцию вы пытаетесь реализовать для конечного пользователя? –
@AndrewThompson: Ожидается, что я буду регистрировать IP-адрес машины как часть журналов – Jim
Адрес IP-адреса, если смотреть откуда? –