Conversion d'une adresse mac en adresse ip

Contenu du snippet

Ce code sert à convertir l'adresse mac entrée dans un champ de formulaire en adresse ip pour faire apparaitre d'adresse convertie dans un autre champ du formulaire.

Ca peut surement servir à d'autres choses, vu que j'ai fait une fonction :-)

Remarque suite aux commentaires plus ou moins négatif :

Il est exact qu'une adresse MAC n'a rien à voir avec une adresse IP, à la base. Cependant, dans l'entreprise dans laquelle je travaille (en tant qu'administrateur réseau) nous avons choisi de sécuriser le réseau en définissant les adresses MAC sur chaque carte ethernet et sur chaque routeur, rendant de ce fait impossible toute connection de machine non répertoriée. De plus, comme notre réseau comporte plus de 3000 machines, il était intéressant de pouvoir localiser une machine à partir de son adresse MAC ou IP, indépendament. Ainsi, chaque adresse MAC identifie le batiment, le niveau, le service et enfin la pièce dans lesquelles se situe la machine.

Source / Exemple :


<script language="JavaScript">

function mactoip(toto) {		
	
 var result = new String();		
 var tab = new Array();
 toto = toto.toUpperCase(); 
 tab = toto.split("-");	
 n = tab.length;			
 m = toto.length;

  if (toto.substr(2,1)=="-") {
     if (toto != "") {
       if (n==4) {			
          result = parseInt(tab[0],16)
          for (i=1;i<n;i++)	
             result += '.' + parseInt(tab[i],16)
       };
       else			
          result = parseInt(tab[3],16)
          for (i=4;i<n;i++)		
             result += '.' + parseInt(tab[i],16)
     };
  };
  else
     var banana = new String();
     var taboo = new Array();
       	
       if (m == 14) {
          banana = toto.substr(6,2)+"-"+toto.substr(8,2)+"-"+toto.substr(10,2)+"-"+toto.substr(12,2);
           taboo = banana.split("-");
           result = parseInt(taboo[0],16);
           for (i=1;i<4;i++)
              result += '.' + parseInt(taboo[i],16); 	
       }; 
       else
         if (m == 8) {
            banana = toto.substr(0,2)+"-"+toto.substr(2,2)+"-"+toto.substr(4,2)+"-"+toto.substr(6,2);
            taboo = banana.split("-");
            result = parseInt(taboo[0],16);
            for (i=1;i<4;i++)
            result += '.' + parseInt(taboo[i],16);	
         };	
		
     document.postmac.ip.value = result;  			

};

</script>

<!-- début du formulaire html :

<form name="postmac" action="" method="post">
<input type="text" name="mac" size="40" maxlength="256" value="entrez l'adresse mac ici" onblur="mactoip(document.postmac.mac.value)"><br>
<input type="text" name="ip" size="40" maxlength="18" value="adresse convertie en adresse ip">
</form>
<br>
<u>Exemples d'adresses :</u><br>
02-00-00-0A-B0-0C-29<br>
0A-B0-0C-29<br>
0200000ab00c29<br>
0ab00c29<br>
<br>
<i>En majuscules ou minuscules, avec ou sans séparateur.</i>

Conclusion :


Ce n'est pas parfait, car il manque le cas où une adresse est saisie avec des séparateurs mais pas à tous les endroits, mais ça fonctionne.
Et aussi le cas où les séparateurs ne sont pas standards (-).

Sachant que cette méthode de sécurisation est largement répendue dans le monde professionnel et la tache d'écrire une application intranet permettant une gestion avancée des systèmes est souvent confiée à un stagiaire ou à un non programmeur, j'avais pensé qu'il eu été utile pour quelqu'un d'avoir cette fonction toute simple accessible sur le réseau Codes Sources.

Si vous voulez l'améliorer, ne vous gênez pas :-)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.