Conversion d'une adresse mac en adresse ip

1/5 (9 avis)

Snippet vu 33 490 fois - Téléchargée 30 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
Messages postés
1
Date d'inscription
lundi 30 avril 2007
Statut
Membre
Dernière intervention
5 septembre 2009

@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?
Messages postés
16
Date d'inscription
vendredi 8 juin 2007
Statut
Membre
Dernière intervention
9 décembre 2010

c'est du grand n'importe quoi, ça converti l'adresse mac en quelque chose de totalement faux
Messages postés
19
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
28 janvier 2009

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.
Messages postés
2
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
9 mai 2005

voir nouvelle description du code
Messages postés
19
Date d'inscription
jeudi 7 avril 2005
Statut
Membre
Dernière intervention
28 janvier 2009

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.