Conversion d'une adresse mac en adresse ip

Soyez le premier à donner votre avis sur cette source.

Snippet vu 33 955 fois - Téléchargée 31 fois

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

Ajouter un commentaire Commentaires
blueangelaze Messages postés 1 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 5 septembre 2009
5 sept. 2009 à 15:11
@GRenard (même si ca date de 5 ans^^)
" "L'adresse mac est bien codée sur la carte, mais on peut choisir d'en utiliser une autre, via l'os. "
Tu serais surpris... quand on connait le réseau, on pourrait bien se prendre pour un autre en changeant son adresse MAC... par contre, ca m'étonnerait que tu puisses faire ca avec une carte simple Ethernet standard... "
en tout cas, au niveau du wifi, ca marche avec une carte/jesaispasquoi/.. standard, et c'est principalement pour limiter les acces indésirés par wifi que le "dhcp sécurisé" existe.
d'accord, je viens d'étaler mon ignorance totale mais le fait est que ca marche, avec un "truc" standard.

a propos de la source :
1)chez moi ca ne marche pas. on va dire que c'est un problème "de mon navigateur"
2)sauf (énorme) erreur, tu transforme "statiquement" l'adresse mac. tu est sûr que c'est une table dynamique que tu utilise? parce que sinon ton code est archi-faux
3)les variables toto, banana, taboo ... hop, poubelle!
4)"Ca peut surement servir à d'autres choses, ..."
quoi?
666merlin Messages postés 16 Date d'inscription vendredi 8 juin 2007 Statut Membre Dernière intervention 9 décembre 2010
28 nov. 2008 à 12:33
c'est du grand n'importe quoi, ça converti l'adresse mac en quelque chose de totalement faux
helene22500 Messages postés 19 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 28 janvier 2009
9 mai 2005 à 20:41
Bonjour Jarez,

je suis toute nouvelle sur ce forum, pourrais-tu me dire où se trouve la nouvelle description du code stp.
ton code m'intéresse vraiment car je dois retrouver quelles ip sont connectées sur les ports d'un switch et je suis obligée de passé par leur adresse mac.
Ton code me serait d'une grande utilitée.

Merci à toi.
jarez Messages postés 2 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 9 mai 2005
9 mai 2005 à 18:48
voir nouvelle description du code
helene22500 Messages postés 19 Date d'inscription jeudi 7 avril 2005 Statut Membre Dernière intervention 28 janvier 2009
9 mai 2005 à 14:22
Bonjour,

cette source m'aurait été utile mais testé et ça fonctionne pas. Ce n'est pas la bonne ip par rapport à l'adresse mac.
dommage, c'était une bonne idée.
Afficher les 9 commentaires

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.