Détection carte réseau avec php

studentw -  
Nabla's Messages postés 18201 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
Configuration: Windows XP
Firefox 3.5.7

9 réponses

  1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
    1. 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
  2. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
    1. 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
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. studentw
       
      merci beaucoup mais peux tu me donner un exp complet pour que je comprend bien
      0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      $_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
      1. studentw > Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention  
         
        c'est windows
        0
    2. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      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
      1. studentw > Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention  
         
        et c'est pour un réseau local
        0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
  7. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    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
    1. studentw
       
      merci pour la réponse ca m'a vraiment aidée merci beaucoup :- )
      0
  8. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    si tu n'as plus rien à demander sur ce sujet, merci de le passer en résolu
    0
    1. studentw
       
      non pas encore il faut que je le test avant
      0
      1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228 > studentw
         
        ok, tiens nous au courant....
        0
      2. studentw > Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention  
         
        ok et merci pour ton aide
        0
      3. saluto > Nabla's Messages postés 18201 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
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
    1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
       
      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
      1. studentw > Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention  
         
        merci à tous vos réponse vont vraiment me servir merci beaucoup
        0
  10. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    n'oublies pas re passer le post en resolu si tu as eu la réponse à ta question
    0