Bonsoir,
Je veux comparer deux adresses ip : l'une d'un paquet et l'autre d'une règle de filtrage qui peut être une plage d'adresses. Je voudrais savoir comment écrire cette fonction en Java
Merci d'avance pour votre aide.
Bonsoir,
Je veux comparer deux adresses ip : l'une d'un paquet et l'autre d'une règle de filtrage qui peut être une plage d'adresses. Je voudrais savoir comment écrire cette fonction en Java
Merci d'avance pour votre aide.
Il faudra être un peu plus explicite car comparer 2 adresses IP (10.59.8.2 et 10.59.8.3 par exemple) c'est comme comparé 2 string, ou 2 entiers...
Tu as un exemple ou un bout de code ou tu bloques ?
Il faudrait aussi préciser ce que tu comptes utiliser pour filtrer les adresses. Tu comptes utiliser un format type masque réseau (ex: 255.255.0.0) ? Ou bien un filtre personnalisé genre (ex: 192.168.*.1??) ?
oui je veux utiliser dans la règle de filtrage un filtre personnalisé (ex:192.168.1.*/26)
Ok, comme vous l'a très bien dit wax78, comparer deux adresses IP entre elles, c'est vérifier une égalité stricte entre deux chaînes de caractères.
Pour ce qui est du filtrage, on peut utiliser une expression régulière : "192\\.168\\.1\\.(([0-5]\\d?)|(6[0-3]?))"
Attention, ici, je pars du principe que le filtrage que vous donnez "192.168.1.*/26" cible toutes les adresses comprises entre 192.168.1.0 et 192.168.1.63 inclus.
Si je ne me trompes pas dans l'interprétation de votre masque, vérifier cela peut se faire ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 String expression = "192\\.168\\.1\\.(([0-5]\\d?)|(6[0-3]?))"; String adr1_Test = "192.168.1.0"; String adr2_Test = "192.168.1.10"; String adr3_Test = "192.168.1.59"; String adr4_Test = "192.168.1.63"; String adr5_Test = "192.168.1.64"; String adr6_Test = "192.168.1.164"; System.out.println(adr1_Test.matches(expression));//true System.out.println(adr2_Test.matches(expression));//true System.out.println(adr3_Test.matches(expression));//true System.out.println(adr4_Test.matches(expression));//true System.out.println(adr5_Test.matches(expression));//false System.out.println(adr6_Test.matches(expression));//false
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager