2010-10-04 5 views
0

Je fais un projet pour la classe et le professeur m'a demandé de stocker les visiteurs d'adresse IP et l'adresse MAC à ma base de données lorsqu'ils se connectent.Obtenir les visiteurs adresses MAC en utilisant PHP et iptables

Jusqu'à présent, après heures de regarder autour de moi, j'ai été en mesure d'obtenir l'IP en utilisant PHP, mais maintenant je dois comprendre comment obtenir l'adresse MAC. De mes recherches, je peux voir qu'utiliser iptables est la clé. J'ai installé le paquet sur mon serveur web maintenant juste besoin d'aide pour trouver comment attraper les données d'iptables et le sortir dans une commande d'écho afin que je puisse voir ce qui se passe. Bon pour les débutants, je devrais savoir comment capturer l'adresse MAC en utilisant iptables avant de comprendre comment utiliser PHP dans tout cela.

+9

Comprenez-vous que l'adresse MAC source d'un paquet en provenance de partout, mais votre propre segment Ethernet sera le MAC du routeur? Les adresses MAC ne sont pas envoyées sur Internet. ils sont LAN local. –

+0

@Jim Garrison - Je comprends que le MAC est sur le PC client et n'est accessible que par le système sur lequel il fonctionne. Mais je lisais que je pouvais utiliser iptables avec le module MAC pour capturer le MAC dans le cas où je voulais restreindre certaines plages sur mon site. C'est ce que je suis en train de demander, comment obtenir le MAC et comment l'ajouter à une base de données pour une comparaison ultérieure. – Eli

+0

Le MAC n'a aucun sens, sauf si le système distant se trouve sur le segment LAN local. Pour tout trafic provenant de l'extérieur de votre segment LAN, le MAC identifiera le routeur comme source. Vous ne pouvez pas utiliser les MAC comme mécanisme de filtrage général à moins que tous les systèmes client se trouvent sur votre LAN local. –

Répondre

0

Le MAC du client n'est pas sur le réseau à l'extérieur de son (ses) segment (s) de réseau local, dans un tel cas, il n'y a aucun moyen de le déterminer.

pour vérifier la localité faire ip route get $ip_address et s'il n'y a pas de 'via' dans le résultat, ils sont sur le même réseau. si elles vous pouvez grep pour $ip_address dans la table arp:

/usr/sbin/arp -n | fgrep $ip_address

Questions connexes