2017-07-13 6 views
-3

J'ai besoin de connaître l'adresse MAC des clients de connexion, comment puis-je faire cela en PHP?Comment obtenir l'adresse MAC du client lors de la visite de mon site Web?

+0

d'abord ... comment avez-vous pris l'adresse MAC? et avez-vous un peu de fond de réseau? –

+0

Vous devez nous montrer votre code. – Vagabond

+0

vérifier cela .. https://stackoverflow.com/questions/3011878/how-to-detect-the-mac-address-of-the-user-viewing-our-website-using-php?rq=1 –

Répondre

0

Normalement, ce n'est pas possible pour des raisons de sécurité. Parce que l'adresse MAC est l'adresse de votre machine et que votre serveur ne peut pas accéder à votre machine. L'adresse MAC n'est pas diffusée au-delà du réseau local auquel l'appareil est connecté - il ne quitte jamais le routeur et passe au serveur.

+0

pouvez-vous s'il vous plaît me suggérer autre chose? , je veux dire que, si l'utilisateur visite sur mon site son magasin d'identité unique dans la base de données, et chaque fois qu'ils reviennent sur mon site, son identité n'est pas stockée, car elle est déjà stockée – ali

+0

Vous pouvez le faire en combinant Client IP et Client Dispositif. Bien que ce ne soit pas garanti, cela vous donnera toujours un résultat correct. Mais au moins, vous pouvez conserver une identité unique maximale. – Avishake

0

Je ne pense pas que ce soit possible à moins que son application de bureau s'exécute sur la machine de votre utilisateur.

+0

pouvez-vous élaborer qui puis-je obtenir l'adresse mac de l'utilisateur quand ils visitent mon site en utilisant php – ali

+0

en bref, vous ne pouvez pas obtenir l'adresse mac en utilisant php, l'information la plus proche que vous pouvez obtenir est l'adresse IP client. –

+0

pouvez-vous s'il vous plaît me dire quelque chose d'autre sur le visiteur unique, je veux stocker mes visiteurs du site dans la base de données comme unique, et vous savez que ip n'est pas unique pour un utilisateur – ali

0

Sur Internet, vous ne pouvez pas. MAIS si le client est sur le réseau local (LAN), créez un fichier php et mettre ce

shell_exec("sudo $arp -an ".$_SERVER['REMOTE_ADDR']); ligne NB:. Assurez-vous d'ajouter l'utilisateur apache par défaut dans le fichier sudoers en exécutant sudo visudo et ajouter "www-data ALL=NOPASSWD /usr/bin/arp" au bas du fichier quelque part.

0

Vous ne pouvez pas, à moins que les clients eux-mêmes l'envoient dans le message. En effet, l'adresse MAC est une adresse locale utilisée uniquement pour les connexions locales. Un ordinateur l'utilise pour communiquer avec d'autres périphériques de son réseau local (LAN), tels que des ordinateurs, des routeurs, des imprimantes, etc. Cela signifie également que les adresses MAC des clients sont également inutiles pour une longue communication, car ils ne sont pas dans le même réseau.

Pour la communication avec des périphériques situés en dehors du réseau local (WAN), une adresse IP et un numéro de port sont utilisés. Les routeurs utilisent l'adresse IP pour savoir où envoyer les données, tandis que le numéro de port est normalement utilisé dans le routeur final pour traduire l'adresse IP publique en une adresse IP privée (192.168.XX, 172.16.XX, 10.XXX) , connu comme NAT. Le numéro de port est également utilisé par l'ordinateur de destination pour savoir quel programme/processus doit envoyer les données.

0

Je sais que ce fil est un peu vieux, mais j'ai cherché beaucoup de web essayant de trouver une solution pour la même question. Après beaucoup de recherche sur le web et beaucoup de solutions et de codes qui n'ont jamais fonctionné, j'ai donc écrit les deux morceaux de code ci-dessous. Rappelez-vous que vous ne pouvez obtenir l'adresse MAC des machines sur votre réseau local, il n'y a aucun moyen d'obtenir le mac via le navigateur. J'espère que cela pourrait aider les autres aussi.

<?php 
$ip_address = $_SERVER['REMOTE_ADDR']; 
$mac = `arp $ip_address | cut -d " " -f4`; 
echo "<br />Your Mac is: "; 
echo $mac; 
?> 

La première version ci-dessus est la plus simple que j'ai pu obtenir.

Et l'autre ci-dessous est plus complexe car il apporte aussi s'il est mandaté, et hostname. Une fois de plus, je voulais juste laisser cela ici pour aider les autres à l'avenir.