MAC adresse

Eléphant du PHP | 105 Messages

23 août 2005, 19:45

Hello a vous,
une simple question : est il possible de recuperer l'adresse MAC d'un pc qui se connecte sur mon site ?
L'adresse IP je l'obtiens sans probleme, mais la MAC...
J'ai cherché du coté de google et apparemment ce ne serait pas possible...mais bon j'espere tout de meme que l'un d'entre vous a un miracle pour moi :)
Merci d'avance

Mammouth du PHP | 19672 Messages

23 août 2005, 19:49

Pour ma culture, c'est quoi l'adresse MAC au juste ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 1885 Messages

23 août 2005, 19:51

Bonjour,

Non, impossible. L'adresse MAC contenu dans la trame IP est modifiée à chaque noeud rencontré. Donc il n'y a aucun moyen de connaître directement l'adresse MAC à moins de lui demander directement.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 105 Messages

23 août 2005, 19:52


Eléphant du PHP | 105 Messages

23 août 2005, 19:54

C'est bien ce que je me disais PHP, merci a toi.
Mais maintenant, comment faire pour eventuellement demander ( faire la requete ) cette adresse MAC directement au PC concerné ?

Mammouth du PHP | 1885 Messages

23 août 2005, 19:57

Bonjour,

Bonne question. À moins d'utiliser un exécutable directement sur le poste, je ne vois pas trop comment... Car si je me souviens bien de mes cours de réseautique, à aucun moment le destinataire n'a connaissance de l'adresse MAC de l'expéditeur (à moins qu'il soit directement connecté ensemble)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 105 Messages

23 août 2005, 21:49

Personne n'a une idee ? => délestage ? Résolu ? :?

Invité
Invité n'ayant pas de compte PHPfrance

23 août 2005, 22:04

cherche bien sur google, un jour j'était tombé sur une classe ou un script permettant de le faire.

ViPHP
ViPHP | 2144 Messages

23 août 2005, 22:07

Je n'ai malheureusement pas de solution à proposé, mais je me permets d'apporter quelques précisions.
L'adresse MAC est l'adresse physique de la carte réseaux, elle se trouve
sous le niveau IP. Bref c'est plutot "boite-noire" et je ne suis pas sur qu'on puisse facilement l'atteindre vu que c'est très loin des couches protocoles ou applications.

Je me permets de m'interroger sur ce que tu veux faire exactement avec la MAC adresse, vu qu'elle n'est plus forcément immuable (on peut la modifier dans certains cas avec des softs des fabriquants) donc si c'est pour la sécurité que tu veux l'utiliser, je suis un peu sceptique.

Invité
Invité n'ayant pas de compte PHPfrance

23 août 2005, 22:13

tiens je vien de trouver un lien.
j'ai fait rapide regarde si ça te va:
http://www.nexen.net/scripts/details.php?scripts=915

ViPHP
ViPHP | 2144 Messages

23 août 2005, 22:16

Interessant, je ne pensais pas que ça serait aussi accessible,
Reste probablement à utiliser les commandes unix si c'est à utiliser sur un serveur. Je ne connais pas l'équivalent unix de la commande arp windows.

EDIT : si tu veux l'adresse mac de l'expéditeur d'une requêtte http, il va falloir que ces instructions soient executés sur le pc client., et là, j'ai peur que ça soit difficilement faisable...
Modifié en dernier par iclo le 23 août 2005, 22:38, modifié 1 fois.

Eléphant du PHP | 105 Messages

23 août 2005, 22:29

moi non plus c'est cela mon probleme, car j'etais deja tombé sur le site NEXEN

Mammouth du PHP | 1885 Messages

23 août 2005, 22:40

Bonjour,

ARP correspond à la table locale de correspondance entre les adresse IP et MAC. Cependant, il y a une mise en garde. La manière dont fonctionne les protocoles TCP/IP fait en sorte que l'adresse MAC contenue dans la table ne correspond pas nécessairement à l'adresse IP associée.

Pour faire une histoire (très) courte, voici comment fonctionne la transmission des paquets sur l'Internet:

Supposons 3 noeuds différents. Les adresse MAC ont été raccourcies afin d'être plus concis.

Poste A
Adresse IP: 24.200.23.41
Adresse MAC: FA:BC

Routeur B (un routeur peut avoir plusieurs ports et donc plusieurs adresses IP et MAC pour chacun d'eux)
Adresse IP: 24.200.23.1
Adresse MAC: D3:A7
Adresse IP: 24.200.24.1
Adresse MAC: 12:4C

Poste C
Adresse IP: 24.200.24.12
Adresse MAC: 13:4E


1) Donc si A (le client) veut communiquer avec C (le serveur) il doit effectuer en premier lieu si l'adresse IP est située dans le même sous-réseau. Ce n'est pas le cas.

2) Il vérifie dans sa table ARP locale s'il n'aurait pas une adresse MAC correspondant à l'adresse IP de destination (24.200.24.12) Non. (on suppose qu'elle est vide pour le moment) Ce n'est pas le cas.

3) Il effectue une requête ARP afin de connaitre l'adresse MAC de celui qui possède l'adresse IP 24.200.24.12 ou qui pourrait transférer le tout au destinataire. Le Routeur B répondra à la requête en transmettant son adresse MAC D3:A7. Le Poste A conservera donc dans sa table ARP locale cette adresse pour référence future.

4) Le Routeur B recoit le paquet et le transmet à sa deuxième interface possédant l'adresse IP 24.200.24.1. Il fera le même procédé pour récupérer l'adresse MAC de celui qui pourra recevoir ou transmettre le paquet. Le poste C répondra à l'appel et lui transmettra son adresse MAC 13:4E.

5) Le routeur B transmet le paquet à Poste C qui est le destinataire.


À tout moment lors du procédé, Poste A n'aura jamais connaissance de l'adresse MAC du poste C. Donc si tu trouves une occurence dans la table ARP locale de ton poste, ce ne sera pas celle du destinataire mais bien du prochain noeud si tu désires lui envoyer un paquet. (donc certainement un routeur quelconque)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Eléphant du PHP | 105 Messages

24 août 2005, 12:34

ok ok :?
pas de chance pas possible...
mais merci a toi

Eléphant du PHP | 105 Messages

24 août 2005, 12:37

En fait ce ke je voulais faire etais d'identifié de maniere unique chaque visiteur sur mon site.
N'ayant pas d'acces aux bases de donnees ( merci hebergeur ) et n'ayant pas de partie membre ( donc d'identification ) je cherchais une autre solution...
J'ai pensé aux cookies, mais il faut encore que le visiteur les accepte....
C'etait principalement pour faire des stats....
Bref si quelqu'un a une autre idee.......