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

Java Discussion :

Dernier bit d'@ ip divisé par 4 ou par 8


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2013
    Messages : 286
    Par défaut Dernier bit d'@ ip divisé par 4 ou par 8
    Bonjour j'espère que vous allez bien
    Je suis entrain de faire une fonction qui prend le dernier bit d'une adresse ip et faire une division par 8 pour multiplier ce dernier par 8 et remplacer le résultat
    Bon quand j'ai tester plusieurs addresse j'ai trouvé qu'il y a des adresses où le dernier bit ne peut pas être divisé par 8 mais par 4
    donc je veux que vous m'aider pour tester si le dernier bit est divisé par 8 alors faire ce que j'ai programmé au début sinon s'il est divisé par 4 donc remplacer la division et la multiplication par 8 en 4

    Merci et bonne journée et voilà le code de ma fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public String nouvelleAddress(String address){
          address=address.trim();
          int pos=address.lastIndexOf(".")+1;
     String lastPast=address.substring(pos,address.length());
     int num1=Integer.parseInt(lastPast);
     int num2=num1/8;
     int num3=num2*8;
     String firstPart=address.substring(0,pos);
     String nouvelleAddress=firstPart+String.valueOf(num3);
     System.out.println("Nouvelle address="+nouvelleAddress);
     return nouvelleAddress;
      }
    Merci bien

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Bien sûr, diviser des bits.
    Tu parles de diviser le dernier byte de l'adresse IP, celui de poids faible.

    Et nous n'allons pas deviner ce qui fait s'il peut être divisé par 8 ou 4. Tant que tu nous le dis pas, nous ne pouvons pas t'aider à faire ce test.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2013
    Messages : 286
    Par défaut
    mois j'ai des addresses ip alors je dois prendre ce dernier bit le divisé par 8 et prendre le résultat et remplacer à la place du bit que j'ai fait la division

    par exemple
    j'ai l'adresse: 172.16.26.138 donc le masque correcpondant et /28
    donc je dois prendre 138 le divisé par 8 ca donne 17,...
    donc je dois remplacer 138 par 17
    mais parfois j'ai des adresse qui ont le masque /30
    donc la divison par 8 çà marche pas je dois faire la division par 4
    alor mois je veux tester si le dernier bit est divisé par 8 faire ces opération sinon le divisé par 4

    Ou bien s'il existe une fonction qui donne le masque d'une addresse ip et faire le test sur le maske s'il est = 255.255.255.252
    divisé le dernier bit de l'adresse ip par 4 sinon divisé le par 8

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par cisco.nat Voir le message
    mois j'ai des addresses ip alors je dois prendre ce dernier bit [...]
    Byte !

    À part ça, non il n'existe aucun moyen de deviner le mask d'une IP, puisque l'ingénieur réseau définit justement les masks qui lui chantent. C'est pour ça qu'on donne toujours le mask à ceux qui en ont besoin : c'est la seule manière de le connaître.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2013
    Messages : 286
    Par défaut
    bon ok
    moi les résultats que j'ai et de cettre sorte:
    soit
    ip address 10.80.152.194 255.255.255.248
    soit
    ip address 10.80.152.194

    alors je lis le résultat avec les buffer et je prend l'@ip je fais la fonction NouvelleAdresse que je vous ai montré et çà marche elle faite la division par 8 et remplace le résultat

    mais puisque j'ai 2 type de masques 248-252 et comme l'indique le 2ème case parfois il m'affiche pas le masque c'est pour çà que j'ai voulu avoir le masque et faire mes test sur ce dernier
    mais bon puisque il est impossible d'avoir le masque je dois trouver une façon pour faire çà
    si tous les résultat m'affiche le masque çà sera bon je vais faire just un test sur le derniet octet du masque puis changer l'octet de l'@ip mais dans ce cas comment puis-je faire ??!!

  6. #6
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Salut,

    En réseau on parle en terme d'octets et non de byte car un byte peut correspondre à 8 ou 9 bits or les adresses ip sont toujours sous forme de séquences de 8 bit soit 1 octet.

    si tu veux savoir si le dernier octet de ton adresse ip est divisible par 8, 4 ou 2 je crois qu'un bon modulo fera l'affaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     public void divisible(Integer adresse){
            if(adresse%8==0){
                //Divisible par 8
            }else if(adresse%4==0){
                //Divisible par 4
            }else if(adresse%2==0){
                //Divisible par 2
            }
            //Ainsi de suite pour toutes tes possibilités
        }
    A voir si ça correspond à ce que tu veux faire !

    Et non Thelvin, nous ne mettons pas les masques qui nous chantent Ils sont issus de calculs dépendant du réseau.


    Tchao !

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/09/2014, 15h18
  2. Réponses: 9
    Dernier message: 29/11/2010, 22h05
  3. obtenir le dernier prix d'achat par fournisseur et par produit
    Par lidybekham07 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/11/2009, 16h26
  4. Récupérer le dernier bit d'un octet
    Par Tenguryu dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/01/2007, 21h41
  5. Les 128 derniers bits d'un fichier en ligne avec Python ?
    Par ecocentric dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 26/09/2005, 12h40

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