IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

Tester une adresse IP Java


Sujet :

Interfaces Graphiques en Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut Tester une adresse IP Java
    bonjour,
    j'ai dans une frame un ensemble des Jtextfield et parmi ces jtextfield ou il faut taper une adresse ip par l'utilisateur et deux boutons enregistrement et vérification ,j'ai arrivé à réaliser une fonction qui vérifie que tous les jtextfield ne sont pas vide , j'ai pas arrivé à vérifier que l'adresse entré est de format xxx.xxx.xxx.xxx et sont des entier et non des char
    aider moi à réaliser cette fonction
    merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Salut,

    Il faut utiliser les expression régulières :

    Le pattern à appliquer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public static final String IP_ADDRESS_PATTERN = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
    L'utilise est très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Matcher matcher = Pattern.compile(IP_ADDRESS_PATTERN).matcher(laValeurSaisieParLutilisateur);
    if (matcher.find())
    {
    // OK
    }
    else 
    {
    //Pas OK
    }

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    merci de me repondre
    mais j'ai fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    void testeip()
        {String ip=d.getText();
     
    Matcher matcher = Pattern.compile(IP_ADDRESS_PATTERN).matcher(ip);
    if (matcher.find())
    {
     
    }
    else
    {
    	d.setText("merci de verifier l'addresse" );
    }
     
        }
    mais j'ai eu comme erreur
    cannot find symbol class Matcher
    cannot find symbol variable IP_ADDRESS_PATTERN
    cannot find symbol variable Pattern
    j'ai connais pas les bibli de ses classe
    merci de me corriger

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Il faut déclarer aussi la constante, comme ca par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    void testeip(){
     
    final String IP_ADDRESS_PATTERN = "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}";
     
    String ip=d.getText();
     
    Matcher matcher = Pattern.compile(IP_ADDRESS_PATTERN).matcher(ip);
    if (matcher.find())
    {
     
    }
    else
    {
      d.setText("merci de verifier l'addresse" );
    }
     
    }
    Tu as forcément les librairies des classes Matcher et Pattern puisque ce sont des classes faisant parties du jdk
    Leur package est java.util.regex.

    Tu n'utilises pas un Ide ? Genre eclipse, netbeans?
    Ils ont des fonctions te permettant d'ajouter automatiquement les imports à tes classes.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Points : 5
    Points
    5
    Par défaut
    merci bien thebloodyman pour ton aide
    la fonction fonctionne tres bien

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Expression non complete
    L'expression régulière "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" vérifie bien les adresses IP , mais elle laisse passer aussi des adresses qui ne sont pas des adresses IP correctes (logiquement) . Par exemple, elle laisserai passer 999.999.999.999 ou 0.0.0.999 . Alors qu'on sait toutes les parties d'une adresse IP correcte doivent être comprise entre 0 et 255 .

  7. #7
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    La syntaxe que je vais faire n'est surement pas bonne mais l'idée est là

    (([0-1][0.9]{2} | 2 [0-4][0-9] | 25[0-5]). ) {4}
    0-199 OU 200 - 249 OU 250 - 255

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    T'as remonté un vieux post, petit troll maléfique

    Citation Envoyé par hakilinidusu Voir le message
    L'expression régulière "\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}" vérifie bien les adresses IP , mais elle laisse passer aussi des adresses qui ne sont pas des adresses IP correctes (logiquement) . Par exemple, elle laisserai passer 999.999.999.999 ou 0.0.0.999 . Alors qu'on sait toutes les parties d'une adresse IP correcte doivent être comprise entre 0 et 255 .
    Exact. Le contrôle des plages n'est pas fait
    C'est ce qu'avait besoin l'auteur du post :
    j'ai pas arrivé à vérifier que l'adresse entré est de format xxx.xxx.xxx.xxx et sont des entier et non des char
    (([0-1][0.9]{2} | 2 [0-4][0-9] | 25[0-5]). ) {4}
    0-199 OU 200 - 249 OU 250 - 255
    Y a de l'idée
    Mais la regex copmplète serait bien plus hard.
    Il manque la gestion du caractère '.' qui est obligatoire dans les 3 premiers parties de l'ip et absent dans la dernière. Ca la complexifie bien davantage.

    Dans ce genre de cas, j'aurai plutôt simplifier le contrôle en le faisant en 2 fois. J'utilise la regex de départ.
    Si elle est ok. Je split la chaine obtenue à partir du caractère '.', et je vérifie que chaque token casté en int n'est pas supérieur à 255.

    un exemple d'une regex complète pour une ip ici :
    ^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
    C'est chaud

  9. #9
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Voila une fonction un peu plus précise qui controlera le bon format d'ip:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    public static boolean isIp(String ip)
    {
    	String[] tabIp = ip.split("\\.");
    	boolean isIp = Boolean.TRUE;
    	try {
    		if (tabIp.length!=4) return false;
    		int digitIp =0; 
    		for (int i=0;i<tabIp.length;i++)
    		{
    			digitIp = Integer.parseInt(tabIp[i]);
    			if (digitIp<0 || digitIp>255)
    				isIp = Boolean.FALSE;
    		}
    	} catch (Exception e) {
    		isIp = Boolean.FALSE;
    	}
    	return isIp;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tester une adresse Internet
    Par Thomas Lebrun dans le forum Contribuez
    Réponses: 0
    Dernier message: 28/12/2010, 23h10
  2. tester une adresse ip
    Par scarfunk dans le forum VB.NET
    Réponses: 7
    Dernier message: 21/04/2010, 10h12
  3. Tester une adresse Ip
    Par Gad29 dans le forum VBScript
    Réponses: 5
    Dernier message: 08/01/2010, 17h02
  4. Tester une adresse URL
    Par acryline dans le forum Langage
    Réponses: 4
    Dernier message: 20/05/2009, 16h58
  5. Comment tester une adresse mail ?
    Par jackop dans le forum Langage
    Réponses: 5
    Dernier message: 08/09/2005, 16h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo