Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1530 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Java, servlet et IPv6

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Java, servlet et IPv6

n°1872348
HDSDI
Posté le 12-04-2009 à 15:04:54  profilanswer
 

Bonjour a toutes et a tous
 
Je bidouilledéveloppe un servlet, que je fait tourner sous tomcat 6, et c'est parfaitement fonctionnel dans un environnement IPv4.
 
Par un pur hasard, j'ai tenté des connexions en IPv6, et sa marche aussi parfaitement: IPv4/IPv6 c'est transparent (chouette).  :wahoo:  
 
Sauf que les adresses IPv6 font foirer mes scripts de vérification d'IPv4 (si l'IP du client a le droit de ce connecter...), car évidement, les adresses IPv6 sont pas foutues comme les IPv4, c'est même le principe.  :p  
 
Bref, et j'en vient a ma question: comment savoir si mon client se pointe sur mon serveur en environnement IPV4 ou IPv6 ? J'ai rien trouvé de valable avec HttpServletRequest...
 
request.getRemoteAddr() me renvoi une belle IP, v4 ou v6 selon le contexte. Faut-il que je détecte des ":" pour dire que c'est une IPv6 et des "." pour dire que c'est une IPv4 ? Je trouve sa super moyen pour un contexte de sécurité...
 
Pour élargir la question, est-que quelqu'un connait de bonnes librairies Java libres, pour traiter l'IPv6 (comme le calcul des sous réseau, la validité d'une adresse...).
 
Et pour lancer un débat, carrément, j'ai l'impression que tout le monde pense que l'IPv6 c'est comme la mort et les impots, on n'y échappera pas, mais vaux mieux y avoir a faire le plus tard possible...  :kaola: Alors que perso, je trouve que sa résous bien plus de problème que cela en pose.
 

System.out.println("Merci pour vos avis et/ou vos idées." );

:hello:  
HDSDI

mood
Publicité
Posté le 12-04-2009 à 15:04:54  profilanswer
 

n°1872350
Je@nb
Kindly give dime
Posté le 12-04-2009 à 15:13:52  profilanswer
 

L'idée est dans la mesure du possible de ne pas avoir de différence d'exécution/traitement particulier en fonction du type d'adresse.
 
Faut se demander si c'est réellement indispensable d'avoir ce comportement distinct.
 
Après en IPv6 il n'y a pas de sous réseau (comme on l'entend en IPv4) : les 64 premiers bits indiquent le réseau, les 64 derniers l'hôte dans le réseau. La validité d'une adresse il y doit y avoir des classes qui font ça mais sinon suffit de jouer avec des regexps sur tous les cas qui existent. Tu peux regarder ça : http://java.sun.com/j2se/1.5.0/doc [...] index.html et en particulier http://java.sun.com/j2se/1.5.0/doc [...] dress.html où avec getByName tu peux checker la validité de l'ip

n°1872353
HDSDI
Posté le 12-04-2009 à 15:39:09  profilanswer
 

Merci pour le petit éclaircissement.
 
Au niveau des sous réseaux, ce que je veut pouvoir faire, c'est d'autoriser toutes les IP provenant d'un sous réseau donné. Par exemple, en IPv4 je dit que j'autorise 192.168.0.0/1. En ipv4 on a le cidr et les masques, sa reste relativement simple.
 
Mais pour l'ipv6 sa reste pour moi le trou noir. Faut-t'il que je teste, pour une ipv6 donnée, si ses 64 premiers bits correspondent aux 64 premiers bits du sous réseau donné ?
J'ai vu que java me traduit ::1 en 0:0:0:0:0:0:0:1, donc je devrai avoir un String toujours formé de la même façon. Enfin j'espère.
 
Et de toute façon il y aura 2 algo: un pour v4 et un pour v6, et je devrait quand même détecter si je suis en v4 ou en v6.
 
Bref, j'ai peur de faire un code bancale, mal sécurisé et difficile a tester. :cry:

n°1872698
bugsan
Posté le 14-04-2009 à 11:25:05  profilanswer
 

Code :
  1. InetAddress address = InetAddress.getByName(request.getRemoteAddr());
  2. if(address instanceof Inet6Address) {
  3. } else if(address instanceof Inet4Address) {
  4. } else {
  5. }


Message édité par bugsan le 14-04-2009 à 11:26:59
n°1872965
HDSDI
Posté le 14-04-2009 à 18:53:26  profilanswer
 

Ohhhhhh !  :ouch:  
 
Respect.
C'est simple et génial.  :jap:  
 
Merci.
 
Je vais essayer.  :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Java, servlet et IPv6

 

Sujets relatifs
Script java & scriptaculousexecution externe en java
urgent programmation javaProbléme avec java.lang.Runtime
[java] Petite question sur les threadsjava - JSR 296
[java] Exemple de ré-implémentation de JconsoleAdditionner en java
[java]Controler un serviceProbleme de connexion Java
Plus de sujets relatifs à : Java, servlet et IPv6


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR