IP en Java

Fermé
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 - 30 avril 2011 à 20:30
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 2 mai 2011 à 21:11
Bonjour,

Voici mon problème :

Écrire un programme Java qui affiche sur l'écran la version du protocole IP utilisé dans une machine (IP version 4, IP version 6)


Voici mon programme :

import java.net.InetAddress;

public class tcp {

	
	public static void main(String[] args) throws Exception {
		
	InetAddress ip = InetAddress.getByName("localhost");
		
	 
		
	byte []	MonIP = ip.getAddress();
	
	
	if (MonIP.length == 4) {
		System.out.println("IP version 4");
	}
	else {
		System.out.println("IP version 6");
	}
	
	} // end main 
} // end class tcp


l'exécution du programme m'a affiché ceci : IP version 4

Que pensez vous de mon programme juste ou faux ?

Merci de me répondre ^^
A voir également:

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
30 avril 2011 à 22:19
Ton code est absurde, remplace InetAddress par Inet6Adress, tu verras que bien que le format soit IPv6, ton code affiche quand même version 4, car "localhost" vaut toujours 127.0.0.1 au format IPv4 donc...
1
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 7
2 mai 2011 à 17:47
Stp dis moi, par quoi remplacerai je l'argument "localhost" de la méthode getByName ? Normalement par l'adresse IP de ma machine, n'est ce pas ? Mais que dois je mettre exactement ?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
2 mai 2011 à 18:07
Regarde getLocalHost
0
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 7
2 mai 2011 à 20:26
Salut !

Voici mon new code :

import java.net.InetAddress;

public class tcp {

	
	public static void main(String[] args) throws Exception {
		
	InetAddress ip = InetAddress.getLocalHost();
		
	byte []	MonIP = ip.getAddress();
	
	
	if (MonIP.length == 4) {
		System.out.println("IP version 4");
	}
	else {
		System.out.println("IP version 6");
	}
	
	} // end main 
} // end class tcp


Bon alors, qu'est ce que t'en dis ?
0
choco90 Messages postés 458 Date d'inscription samedi 21 mars 2009 Statut Membre Dernière intervention 13 juillet 2016 7
2 mai 2011 à 20:36
ayayay réponds moi :(
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
2 mai 2011 à 21:11
Imaginons que je force un peu la machine...

InetAddress ip =
    InetAddress.getByAddress(InetAddress.getLocalHost().getHostAddress(),
    new byte[16]);

Ton adresse est toujours IPv4 mais contenu dans un tableau de byte plus grand.
Il t'affichera "IP version 6" alors que ton adresse est bien IPv4.

Regarde plutôt du côté de isIPv4CompatibleAddress
0