Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Incorrect IP address on Linux machine in JDK 6


Автор: integral 25.9.2008, 18:24
Всем добрый вечер!
При помощи следующего кода:
Код

InetAddress ia = InetAddress.getLocalHost();
InetAddress[] allAddresses = InetAddress.getAllByName(ia.getHostName());

получаю айпишники на локальной машине. На виндовс или соларис работает нормально, а вот на линуксе (тестировали на федоре и центос, это разные машины) ядро 2.6  возращает только 127,0,0,1 хотя реально там больше. Например, на машине с федорой командой ifconfig  получаю:
127.0.0.1
192.168.0.1
192.168.1.2
при этом, там две  сетевухи.... Есть какие-то идеи?
заранее спасибо

Автор: ivg 25.9.2008, 19:01
Код

import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;

public class Test {

    public static void main(String[] args) throws Exception {
        Enumeration<NetworkInterface> nifs = NetworkInterface.getNetworkInterfaces();
        while (nifs.hasMoreElements()) {
            NetworkInterface nif = nifs.nextElement();
            System.out.println(nif.getDisplayName());
            for (InterfaceAddress ifa : nif.getInterfaceAddresses()) {
                System.out.println(ifa.toString());
            }
            // Или
            Enumeration<InetAddress> inas = nif.getInetAddresses();
            while (inas.hasMoreElements()) {
                InetAddress ina = inas.nextElement();
                System.out.println(ina.toString());
            }
        }
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)