Test sur validité adresse IP

cs_jumano Messages postés 64 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 29 février 2008 - 21 oct. 2007 à 11:20
cs_jumano Messages postés 64 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 29 février 2008 - 22 oct. 2007 à 20:30
Bonjour,
J'aurais besoin d'une petite aide pour faire un test sur un champ de formulaire où l'on indique une adresse IP.
Le test doit se faire au submit du formulaire, j'ai bien pensé à empêcher la saisie de caractère autres que des chiffres et le "."
J'ai effectué des recherches sur le net mais rien de concluant
Si quelqu'un avait une idée, un lien vers un site, ou un tuto.
Merci par avance

4 réponses

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
21 oct. 2007 à 14:24
Bonjour,

>Le test doit se faire au submit du formulaire
    certes. c'est une possibilité.
    et qu'est-ce qui ne fonctionne pas dans ton script ?
    parce que les tests de format d'une IP sont "assez simples"  
       ( 4 nombres séparés par un point pour faire simple )

    remarques quand même :
        un format  d'IP valide, ne veut pas dire une IP valide,
           rien ne prouve qu'elle existe.
       le commun des mortels  à une IP variable
          moi, par exemple.

<hr />                Cordialement            Bul        
0
cs_jumano Messages postés 64 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 29 février 2008
21 oct. 2007 à 18:39
Effectivement le test de validité ne me dira pas si oui ou non l'adresse est valide mais au moins si le format est bon.
Bon j'ai trouvé une altervnative, en faisant quatre champ où on ne peu mettre que des chiffres, avec un test sur le submit pour savoir dans un premier temps si les champs ne sont pas vides.
Dans un second temps un test pour savoir si le nombre indiqué se trouve bien compris entre 1 et 255.
Mon petit soucis, comment éviter que le premier chiffre de cahque champ ne soit pas un 0.
Voici mon code (peut être un peu long, mais bon il fonctionne ....)

<script type="text/javascript">
function Autotab(box, longueur, texte)
{
    if (texte.length > longueur-1) {
        document.getElementById('TB'+box).focus();
    }
}
</script>
<script language="javascript" type="text/javascript">
function TestIP()
{
  if(document.form.TB1.value == "")
  {
        alert ('Veuillez remplir toutes les cases !');
  document.form.TB1.focus();
        return false;
     }
  
  if(document.form.TB2.value == "")
  {
        alert ('Veuillez remplir toutes les cases !');
  document.form.TB2.focus();
        return false;
     }
  
  if(document.form.TB3.value == "")
  {
        alert ('Veuillez remplir toutes les cases !');
  document.form.TB3.focus();
        return false;
     }
  
  if(document.form.TB4.value == "")
  {
        alert ('Veuillez remplir toutes les cases !');
  document.form.TB4.focus();
        return false;
     }
  
  if(document.form.TB1.value == 0)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB1.focus();
        return false;
     }
  if(document.form.TB1.value > 256)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB1.focus();
        return false;
     }
  
  if(document.form.TB2.value == 0)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB2.focus();
        return false;
     }
  if(document.form.TB2.value > 256)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB2.focus();
        return false;
     }
  
  if(document.form.TB3.value == 0)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB3.focus();
        return false;
     }
  if(document.form.TB3.value > 256)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB3.focus();
        return false;
     }
  
  if(document.form.TB4.value == 0)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB4.focus();
        return false;
     }
  if(document.form.TB4.value > 256)
  {
        alert ('Le premier chiffre doit être compris entre 1 et 255 !');
  document.form.TB4.focus();
        return false;
     }
}
</script>
<link href="styles.css" rel="stylesheet" type="text/css" />
</head>

<form id="form" name="form" method="post" action="" onsubmit="return TestIP();">

.

.

.



</form>
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
22 oct. 2007 à 08:22
>>Voici mon code (peut être un peu long, mais bon il fonctionne ....)
    c'est normal, puisque les tests sont fait 4 fois
    j'aurais peut-être plus opté pour un truc du genre :

<head>
    <script type="text/javascript">
        function TestIP()
        {    for ( var nz=1;nz<=4;nz++ )
            {    alert(document.frm["TB"+nz].value);
            }
        }
    </script>
</head>

<form id="form" name="frm" method="post" action="" onsubmit="return TestIP();">

</form>

pas sûr que ça vaille la peine de tester les touches saisies
j'ai sucré pour l'exemple.

pas length mais size
éviter les name ressemblant trop à ce que connais html ou javascript ( form )

quand à tester les champs...
regarde isNan et
Number(champs.value)<1 || Number(champs.value)>255

encore uen question, car je ne suis pas sûr...

tu comptes en faire quoi de cet IP ?
la 2ème fois que je me connecterais, je n'aurais probablement
    pas le même IP que la 1ère fois, et ce comme tout le monde
coté serveur, on peut le connaitre automatiquement cet IP.
    ( coté javascript "presque" aussi mais appel ActiveX ou Java )





<hr />                Cordialement            Bul        
0
cs_jumano Messages postés 64 Date d'inscription dimanche 1 mai 2005 Statut Membre Dernière intervention 29 février 2008
22 oct. 2007 à 20:30
je travaille sur l'élaboration d'une petite application web (gestion de courriers arrivés et départs) qui sera installé sur plusieurs sites distants. L'adresse IP me permet en fait d'effectuer une requête sur un serveur distant dont je ne connais pas l'adresse IP par avance, celle-ci sera renseignée lors du paramétrage de cette petite application.
0
Rejoignez-nous