Détection carte réseau avec php

Fermé
studentw - 2 févr. 2010 à 09:38
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 8 févr. 2010 à 16:54
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
2 févr. 2010 à 09:54
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
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
2 févr. 2010 à 14:47
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
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 févr. 2010 à 16:00
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
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
2 févr. 2010 à 16:20
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
2 févr. 2010 à 17:18
$_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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
2 févr. 2010 à 17:31
c'est windows
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
2 févr. 2010 à 17:24
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
2 févr. 2010 à 17:33
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
2 févr. 2010 à 17:55
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
2 févr. 2010 à 19:34
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
merci pour la réponse ca m'a vraiment aidée merci beaucoup :- )
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
3 févr. 2010 à 15:28
si tu n'as plus rien à demander sur ce sujet, merci de le passer en résolu
0
non pas encore il faut que je le test avant
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192 > studentw
3 févr. 2010 à 16:37
ok, tiens nous au courant....
0
studentw > Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
3 févr. 2010 à 16:39
ok et merci pour ton aide
0
saluto > Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
4 févr. 2010 à 15:08
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
4 févr. 2010 à 20:18
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
5 févr. 2010 à 09:10
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 mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
8 févr. 2010 à 16:28
merci à tous vos réponse vont vraiment me servir merci beaucoup
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
8 févr. 2010 à 16:54
n'oublies pas re passer le post en resolu si tu as eu la réponse à ta question
0