Comment obtenir l'ip de l'ordinateur sur Linux via Java?
Comment faire pour obtenir l'adresse ip de l'ordinateur sur linux via Java ?
J'ai cherché sur le net pour les exemples, j'ai trouvé quelque chose au sujet de NetworkInterface classe, mais je ne peut pas envelopper la tête autour de la façon dont je reçois l'adresse Ip.
Ce qui se passe si je dispose de plusieurs interfaces réseau en cours d'exécution dans le même temps ? L'adresse Ip qui sera retourné.
Je voudrais vraiment l'apprécier quelques exemples de code.
P. S: j'ai utilisé jusqu'à présent la classe InetAddress qui est une mauvaise solution pour les applications multiplates-formes. (win/Linux).
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Ne pas oublier les adresses de loopback, qui ne sont pas visibles de l'extérieur. Voici une fonction qui extrait le premier non-bouclage IP(IPv4 ou IPv6)
De Java Tutoriel
Pourquoi est
InetAddress
pas une bonne solution? Je ne vois rien dans les docs sur la compatibilité de plate-forme?Ce code va énumérer toutes les interfaces réseau et de récupérer leurs informations.
Voici un exemple de sortie à partir de l'exemple de programme:
Ce code a travaillé 4me:
Il n'est pas acceptable de simplement retourner le premier non-bouclage de l'interface qu'elle pourrait avoir été créé par un logiciel comme Parallels. C'est un meilleur pari pour vous essayer à la pêche pour les eth0.
La solution la plus simple dans mon cas était
Socket.getLocalAddress()
. J'ai dû ouvrir le Socket, mais avec tous les NetworkInterfaces sur mon Ubuntu 10.04 machine c'était la seule façon d'obtenir l'adresse IP externe.