Détection carte réseau avec php

studentw -  
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour
est ce que php peut détecter la carte réseau du pc ?
merci d'avance

9 réponses

Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
php travaille coté serveur. Si il detecte une carte réseau, ce sera celle du serveur, mais php est plus haut que ca

il est possible avec PHP d'appeller des commandes système grace à la fonction exec. Donc si ton serveur est sous linux, une commande ifconfig, ou iwconfig pourrait renvoyer les info que tu cherche, sous windows ce serait plutot ipconfig...
0
studentw
 
merci Nabla's de votre réponse mais je veux savoir est ce que php permet de détecter la carte réseau du pc car mon projet demande celà enfaite mon projet consiste à réaliser un messanger d'un réseau local et aussi de choisir une carte réseau si le pc à + qu'une et je veux le développer avec php
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
comme je te disais, PHP ne permet pas de faire ceci directement, mais tu peux obtenir tes informations en faisant un appel systeme aux applications réseaux depuis php avec la commande exec www.manuelphp.com/php/function.exec.php

pour savoir si t'es sur linux ou windows: https://forums.commentcamarche.net/forum/affich-16410881-detection-carte-reseau-avec-php#2

et la commande à appeller:
windows: ipconfig
unix: ifconfig et iwconfig
0
studentw
 
Merci je crois j'ai eu une idée sur celà mais peux tu me donner un code qui permet celà
merci d'avance
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
est ce que php peut détecter la carte réseau du pc

que veux tu dire par detecter ?

si c'est le numéro IP, PHP peut le donner:
$IP=$_SERVER[REMOTE_ADDR];


si tu es en réseau local avec le serveur ce sera l'adresse IP local du PC,
ex: 192.168...... donc correspondant à l'IP de la carte réseau dans le réseau local

par contre si ton script est sur un serveur "distant" il te donnera le numéro IP du routeur

ex:90.48.........
0
studentw
 
merci beaucoup mais peux tu me donner un exp complet pour que je comprend bien
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
Dans mon cas:

j'ai un mini réseau local comprenant:

- une Livebox qui est connectée à internet et sert de routeur
- un certain nombre de micros (PC, MAC)
- un micro en Linux qui sert de serveur web de test


si je fais un script php dans lequel je mets:

<?php
echo "Adresse ip= ".$_SERVER[REMOTE_ADDR];

- si je mets ce script sur mon serveur local de test et l'appelle depuis le navigateur de mon PC, il va me répondre:
Adresse ip=192.168.1.....
c'est l'adresse IP locale de ma carte réseau du PC

- si je mets ce script sur un serveur distant (chez un hebergeur) et l'appelle depuis le navigateur de mon PC, il va me répondre:
Adresse ip=90.48.........
c'est l'adresse IP que Orange a affectée à la Livebox
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
$_SERVER[REMOTE_ADDR] renvoie l'adress ip du visiteur il me semble.

d'après ce que comprend, il souhaite connaitre l'ip de son ordinateur.
l'ensemble des IP de l'ordi est acecssible via les commadnes décrites plus haut (s'il donnait son systeme (linux ou windows), je lui donnerai bien un code....
il faut aussi savoir que le serveur apache n'écoute pas forcement sur toutes les adresses IP du PC (dans le fichier httpd.conf, après l'instruction listen, n peut specifier els adresses IP, ce qui permet par exemple, si on est connecté à deux réseaux différents, l'un en wifi et l'autre en ethernet par exemple, de n'écouter que sur l'une des deux interface. L'utilisation courante est de n'écouter que sur 127.0.0.1, c'est à dire de n'accepter que les connexions venant du serveur (très utile pour pas que les membres du réseau voient ce que vous développez)
0
studentw > Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention  
 
c'est windows
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
dans son cas, je pense qu'il faut soit :
- paramettrer apache (en dur) dans le fichier httpd.conf
- faire un script php qui modifie httpd.conf (c'est sale)
- soit mettre apache ecoutant sur toutes les IP (donc LISTEN 80), faire ce que je disais en haut, récuperer les IP, et essayer de voir si on peut trouver l'IP du serveur utilisé pour une instance du script... et j'ai du mal a voir comment faire

si on connaissait exactement les conditiosn d'utilisation (intranet, extranet, etc...), ce qu'on veut utiliser, bloquer, etc, on pourrait peut etre trouver un moyen détourné, notemment avec le $_SERVER[REMOTE_ADDR]
0
studentw > Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention  
 
et c'est pour un réseau local
0

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

Posez votre question
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
je tacherai de trouver un moment moment pour te faire (ou trouver) un script donnant l'ensemble des IP de ton serveur. (d'ailleurs, juste IPv4 ou IPv6 aussi ?).
Perso je te donnerai un exemple focntionnant sur XP.

il faudrais que tu explique mieux le blocage que tu souhaite faire... es ce que c'est un blocage static (permanant), dynamique (pouvant etre modifié via uen page php par exemple). es ce que c'est un blocage juste pour une page / site ou pour tout le contenu du serveur ?

n'oublies pas que plus tu détailles, plus nous pouvons être précis dans nos réponses
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
tiens, j'ai fait ce script, qui te liste les IP de ton ordi.
chez moi, il ne liste pas l'interface de loopback (127.0.0.1).

on pourrait faire ca beaucoup mieux, en enregistrant les infos dans des ojects, mais je te laisse le soin d'approfondir et publier les ajouts que tu y ferais:

<?php
 $cartes = array();	//tableau de stockage des IP de la machine
 $index = 0;	//index gardant le nombre d'IP stockées
 exec("ipconfig",$sortie);	//execution de la commande systeme d'information réseau
	
 foreach($sortie AS $indice => $valeur) 	//traitement de chaque ligne retournée
   if (substr(trim($valeur),0,10)=="Adresse IP")	//si la ligne est un retour d'adresse IP
      $cartes[$index++] = substr(strstr($valeur,":"),2);	//enregistrement de l'ip, et incrémentation du compteur $index

  echo "Votre ordi a ".$index." IP(s): <br/>";	//affichage des infos
  foreach($cartes AS $indice => $valeur) 
     echo $valeur."<br />";
?>
0
studentw
 
merci pour la réponse ca m'a vraiment aidée merci beaucoup :- )
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
si tu n'as plus rien à demander sur ce sujet, merci de le passer en résolu
0
studentw
 
non pas encore il faut que je le test avant
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193 > studentw
 
ok, tiens nous au courant....
0
studentw > Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention  
 
ok et merci pour ton aide
0
saluto > Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention  
 
Nabla's merci encore pour ton aide mais je ne sais pas où devrais je mettre ce code et comment je vais le tester est ce par une page html ou comment ?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
avec la solution proposée par notre ami Nabla's,il faut que tu ai sur chaque pc ou tu veux faire le test que wamp ou easy php soit installé

et le script doit être dans le repertoire www de wamp par exemple et tu appelles le script depuis ton navigateur

car la commande exec("ipconfig",$sortie) ne s'éxécute que sur la machine ou est le script php
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
oui, c'est bien ce que je disais dans le post 1. On detecte la carte reseau du serveur. Je pense que c'est ce qu'il veut. sinon, pour la carte réseau du client, en faisant simple, on ne peut detecter que celle qui est utilisé pour contacter le serveur. Pour detecter les autres, je ne vois pas de manière autre que les activeX (caca) ...
0
studentw > Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention  
 
merci à tous vos réponse vont vraiment me servir merci beaucoup
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
n'oublies pas re passer le post en resolu si tu as eu la réponse à ta question
0