Récuperer l'ip et la mac par un script PHP

Fermé
Thomas - 19 oct. 2006 à 11:04
 plefebv - 17 avril 2015 à 20:47
Bonjour tout le monde,

Je dois créer, dans le cadre de mon tfe, une page php dépendant d'une base de donnée mysql.
Cette page permet a un client de s'identifier.
Se qui permet d'envoyer l'identifiant, l'ip et la mac dans la base d e donnée.

Ma question: je recherche un script php permettant de récolter l'ip et la mac de l'utilisateur pour l'envoyer dans la base de donnée

Merci
A voir également:

18 réponses

wAx Messages postés 1590 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 21 novembre 2011 202
26 oct. 2006 à 19:18
Bonjour,

Il faut savoir qu'il est impossible de connaitre l'adresse mac de la machine qui se connecte dès qu'il y a le moindre routeur entre la machine et le serveur.

Les adresses mac sont utilisées pour faire passer l'information de routeur en routeur, du poste client jusqu'au serveur et vice versa lorsque le serveur répond.

Cela signifie que l'adresse mac de la machine qui se connecte n'est visible que pour le premier routeur (souvent meme la 'box' freebox, livebox etc) ensuite, le second intermediaire voit les données qui arrivent en provenance de l'adresse mac de la box etc etc
du coup, le serveur qui heberge le site voit TOUTES les connexions arriver avec pour adresse mac, celle de son routeur (evidement sauf si la requete vient du meme reseau que le serveur lui meme)

Reccuperer les adresses mac est donc inutile et presque toujours impossible.

a bientot

wAx
35
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
19 oct. 2006 à 13:22
Salut.

Pour l'ip, c'est la variable :
$_SERVER['REMOTE_ADDR']

par exemple :
<?php
//on affiche l'adresse ip
echo $_SERVER['REMOTE_ADDR'];
?>


Pour l'adresse mac, je ne sais pas, mais je crois que c'est selon les composants (carte ethernet, wi-fi...) et pas l'ordinateur.

https://www.php.net/manual/fr/reserved.variables.php

a plus
12
wAx a tout a fait raison, il est impossible de connaitre l'adresse MAC de la machine depuis un script php.

Si tu bricoles un peu en créant un mini logiciel que tu envoie à chaque connexion du client tel un cookie mais qui s'exécute chez le client pour lui demander son adresse MAC et le renvoie à ton serveur et la tu pourras t'amuser à le stocker sur une base sql et les tester à chaque connexion de l'utilisateur...

Autrement dit, d'une part ca sera très inconfortable pour l'utilisateur, d'autre part, une sorte de script qui s'exécute chez le client, vraiment pas génial, et de plus, bonne chance pour programmer tout ca :-D
8
Bonjour à tous,

en lisant ce sujet, j'en suis venu à me poser une question dont la réponse pourrait peut-être permettre d'avoir l'adresse mac du client (le dernier post est certes vieux mais ça peut toujours être utile à d'autres).

Le javascript (si j'ai bien suivi les différents tutos que j'ai lu ^^) s'exécute sur le pc client...un script js peut-il, donc, récupérer l'adresse mac (pas de problème de "routage" vu que c'est sur le pc même) et la renvoyer dans une variable? On pourrait peut-être y avoir accès, non?
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
<?php
ob_start();
system("ipconfig /all");
$mycom=ob_get_contents();
ob_clean();
$findme = "physique";
$pmac = strpos($mycom, $findme);
$mac=substr($mycom,($pmac+36),17);
echo $mac;
?>

me renvoie 15-9E-36-F6-06

c'est pas ça ???
3
C'est la mac du Serveur, par
contre c'est toujours impossible en php pour récupérer
celle du Cient !
0
Toujours impossible et ça ne changera pas !
0
Duncan Idaho
5 juin 2014 à 17:39
Merci SupKawai, c'est exactement ce que je cherchais ! (l'adresse mac du serveur)
0
Si les clients qui vont se connecter sont situés sur le même LAN, on peut faire un petit script en PHP qui lance une commande système.

$resultat=system("arp -a");

fournira toutes les MAC associées aux IP qui viennent de se connecter sur le serveur... puis ensuite un traitement de chaines de caractères permettra de retrouver la MAC d'une IP en particulier.

Mais ça ne fonctionnerait que sur un LAN. Les MAC ont une signification locale.
2
Utilisateur anonyme
20 oct. 2006 à 22:12
ll'adresse mac est inscrite à la carte réseau (qu'ellesoit intégrée ou non a la carte mere)
1
La théorie du protocole iso je connai mais c pas se que je demande. enifn merci quand même

Si qq'un a une idée tjrs là
1
wAx Messages postés 1590 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 21 novembre 2011 202
26 oct. 2006 à 23:53
Bsoir,

Dans ce cas, connaissant la theorie du proto ethernet et le modele iso tu devrais deja savoir que si ton client n'est pas sur le meme reseau physique, il est impossible d'avoir l'adresse mac

De plus, c'est une info que ne remonte pas jusqu'à la couche 7, là où toi tu travailles. L'ip fait partie des variables d'environnement du serveur web et donc est accessible au php via divers moyen. La mac n'est pas accessible...

Bon courage
0
Salut..WAX .vous savez c est vrai d'un point de vu fonctionnel, mais il peut y avoir nuance selon moi, si tel est le cas pour les adresses MAC, je dirait que c'est valable pour les adresses IP, car avant de sortir du réseau l'adresse de la machine locale est mapée à une adreese publique et un numero de port(Le protocole NAT), et donc l'adresse IP en local n'est pas visible sur la toile, et la le meme problème se pose. Moi je pense qu'il est possible de connaitre l'adresse MAC, ou bien cette fonctionnalité n'est pas prise en compte.
Qu'en pensez-vous?
Merci!!!
0
bud35000 Messages postés 150 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 21 septembre 2016 103
7 sept. 2007 à 09:12
D'accord mais si c'est sur le même réseau, on peut récupérer cette adresse MAC avec arp -a . et cette autre commande genre nbtstat -a "@ip" .
Mais j'aimerai savoir aussi si y aurait pas un moyen d'automatiser cette tâche pour inscrire les adresses MAC dans une table sql en la faisant correspondre avec son IP fixe.
Donc soit en php ou autre mais j'imagine qu'il y a une requête qui existe.

Avec un script en batch, on peut visualiser à partir des IP les adresses MAC correspondante. Est-il possible de récupérer ces valeurs sous forme de variables.
1
bonjour quelqu'un pourrait m'aider à trouver un logiciel ou un programme en php, shell, perl ou encore cygwin qui me permetterais de retrouver une adresse mac sur le port d'un switch ! C'est un proget que je dois réaliser pour mon stage mais je n'ai aucune idée de comment m'y prendre !! J'aurais bien besoin d'un petit coup de main svp merci d'avance !!
1
Je dirais que vous n'avez pas pigé le truc, du coup on reprend tranquillement!
L'adresse mac est une adresse défini dans le composant du pc (ethernet ou wifi). Pour y accéder on ne peut passer QUE par la machine.
J'ai lu plus haut qu'un petit malin pensait qu'on pourrait utiliser le JavaScript pour récupérer l'adresse mac... et bien il faudra continuer à lire les tutos JS! Le js ne permet pas d'accédé aux infos du pc, en effet il se limite au navigateur. C'est pour des raisons de sécurité que les créateurs du langage JS ont limité sont champ d'action, et on les comprend :) loll

Une façon de récupérer l'adresse mac (parce que oui y en a une, quand même) est de faire un applet java ! Qui renverra les infos depuis la machine. Moi perso... mon firewall bloquera sa tentative de connexion extérieur... ou l'un des routeurs... lol et cela si j'ai accepté l'applet !

Du coup le plus simple et de demander aux visiteurs ... !
1
mon firewall bloquera sa tentative de connexion extérieur...

A condition que ce soit un firewall logiciel installé sur la machine cliente

ou l'un des routeurs.

non. Comment un routeur fait la différence entre la connexion de l'appel et celle du navigateur lorsque l'utilisateur est en train de surfer ?

Mais bon, tout ça c'est bien beau mais je ne vois toujours pas l'intérêt de récupérer l'@ mac...
0
entre la connexion de l'applet et cell
pardon, j'ai validé trop vite
0
un script ne veut pas forcément dire Javascript. Le java ne peut pas accédée au fichiers? si.
De même pour bien d'autres language.d
0
bon c'est unbe technique d'ancien mais si tu as l'adresse ip de la machine et que tu veux l'adresse mac, tu fais:
ping <adresse ip de la machine> au boup de 2 3 ping tu stoppes
et tu lances un arp -a et tu auras l'adresse mac correspondante.

Tu dois pouvoir lancer des commandes avec php donc tu devrai t'en sortir.
a++

ps: cette réponse arrive surement trop tard mais ça pourra servir à d'autres
1
Oui l'adrese mac est de toute facon identifée sur le pc.
Mais je ne trouve pas de moyen de la retranscrire par un script.
0
Ssylvainsab Messages postés 2884 Date d'inscription samedi 29 juillet 2006 Statut Modérateur Dernière intervention 15 août 2020 825
21 oct. 2006 à 11:19
C'est dire, tu n'as pas trouvé de moyen de connaitre l'adresse MAC ?
0
j'ai trouvé pour l'ipm ais l'adresse mac j'arrive pas a la trouver grace a une code php ou javascript.

si qq'un a une idée....
0
Utilisateur anonyme
21 oct. 2006 à 21:04
si j'y pense je demanderai à mon prof d'informatique...
0
Récuperer l'ip et la mac par un script PHP
13 sept. 2007 à 13:43
mmm
0
ingenieurinfo Messages postés 6 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 23 décembre 2013
23 déc. 2013 à 11:22
Bonjour,

si ton application est en intranet et ton serveur est Linux. Tu peux récupérer l'adresse mac du client comme suit:
<?php
// code fonctionne sous Debian 7.0, pour d'autre version et distribution de Linux tu peux changer la commande "cut" pour récupérer le champ

$mac=system("/usr/sbin/arp -a|grep ".$_SERVER['REMOTE_ADDR']."\)|cut -f4 -d\" \"");
?>
0
La technique de l'ARP ne fonctionne que pour les sous réseaux proches.
Si la machine à identifier est trop éloignée, tu ne verras jamais l'adresse MAC remonter dans les tables de résolution d'adresse de ton réseau.
Même en insistant lourdement.
Une option est d'exécuter un code java (ou autre) sur la machine distante.
0
Une autre solution :winck: est de hacker tous les routeurs de l'internet ...
mais ça, il fallait le faire avant la conception de ces routeurs, en intégrant le code dans les compilateurs de silicium qui ont servi ensuite à concevoir les routeurs, sous la forme d'une "fonction cachée pour maintenance ou optimisation du routage"...
0