Test sur validité adresse IP

Signaler
Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008
-
Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008
-
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
A voir également:

4 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
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        
Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008

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>
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
>>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        
Messages postés
64
Date d'inscription
dimanche 1 mai 2005
Statut
Membre
Dernière intervention
29 février 2008

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.