¿Cómo puedo obtener la Dirección MAC usando PHP o javascript…

  • Usted no puede hacer eso.
  • Usted debe publicar que como una respuesta.
  • ¿Por qué es esta bajando votado? Yo también estaba buscando esta respuesta.
  • A continuación, voto arriba. Algunas personas tienen un impulso irresistible de downvote preguntas cuando un.) ellos piensan que la respuesta es obvia o. b.) ellos piensan que la respuesta a la pregunta es «imposible», o. c.) no puedo pensar en una buena razón para hacer lo que el autor de la pregunta está tratando de hacer.
  • Estoy de acuerdo en que hay un montón de inapropiado downvoting por aquí, pero esta pregunta es casi estelar. Lo que la dirección MAC es el OP interesado en, por ejemplo? Por qué? ¿Cuál es el objetivo general?
  • el autor de la pregunta no puede saber la diferencia entre la dirección MAC y la dirección IP. Pero yo creo que la gente debería preocuparse menos acerca de el autor de la pregunta como una persona, y más acerca de lo que pide la pregunta. La gente a buscar en internet y encontrar esta pregunta puede tener todo tipo de razones para hacer esta pregunta exacta. Incluso si el autor de la pregunta de la razón no es bueno, la suya podría ser. Sugerencias/advertencias puede ir en los comentarios. Asker podría darse cuenta de que él no quiere hacer esto después de todo. Pero otras personas se encuentra la pregunta y las respuestas útiles, como hice yo.
  • $ip=$_SERVER[‘REMOTE_ADDR’];$arp=arp $ip; $lineas=explode(» «,$arp);$macaddr=$lines[3]; esto funciona en FreeBSD puede tener que utilizar arping en Linux … este se ejecuta el comando «arp» con las comillas simples inclinadas

InformationsquelleAutor kim edgard | 2011-02-22

10 Comentarios

  1. 1

    Usted puede obtener la dirección MAC del cliente en javascript, si se ejecutan en Windows y permite instalar un control ActiveX.

    http://www.eggheadcafe.com/community/aspnet/3/10054371/how-to-get-client-mac-address.aspx

    http://codingresource.blogspot.com/2010/02/get-client-mac-address-ip-address-using.html

    • Confiando en el lado del cliente con JavaScript y la 3ª parte de componentes Active X es terriblemente inseguro y anticuado.
    • Sí, es bastante horrible. También es la única respuesta correcta se ha dado hasta ahora.
    • Yo sospecho que el interlocutor no sabe la diferencia entre la dirección MAC y la dirección IP, pero el hecho sigue siendo que es posible obtener la dirección MAC de un cliente remoto a través del navegador. Es un terriblemente inseguro y algo inútil, pero es posible.
    • Es más probable que el interrogador significaba para obtener la dirección MAC local, no en el cliente. Que es una cuestión muy diferente y las otras respuestas que aquí se dan soluciones en PHP.
  2. 37

    La dirección MAC (el bajo nivel de la red local de la dirección de la interfaz) no sobrevivir a saltos a través de los routers IP. Usted no puede encontrar la dirección MAC de clientes desde un servidor remoto.

    En una subred local, las direcciones MAC se asignan direcciones IP a través de la ARP del sistema. Las Interfaces de la red local saber cómo asignar direcciones IP a direcciones MAC. Sin embargo, cuando los paquetes han sido ubicados en la subred local (y a través) de la puerta de enlace a la «real» de Internet, el origen de direcciones MAC está perdido. En forma simplista, cada subred a subred hop de los paquetes implican el mismo tipo de IP-para-MAC asignación para local de enrutamiento en cada subred.

  3. 9
    echo GetMAC();
    
    function GetMAC(){
        ob_start();
        system('getmac');
        $Content = ob_get_contents();
        ob_clean();
        return substr($Content, strpos($Content,'\')-20, 17);
    }
    • Mientras este fragmento de código se puede resolver la cuestión, , incluyendo una explicación de realmente ayuda a mejorar la calidad de tu post. Recuerde que usted está respondiendo a la pregunta para los lectores en el futuro, y esas personas pueden no saber las razones de su sugerencia de código. Por favor trate de no entrar en su código con comentarios explicativos, ya que esto reduce la legibilidad del código y las explicaciones!
    • Es un trabajo en el servidor localhost. No funciona en el servidor en vivo
    • No funciona en un sistema Linux en un servidor remoto
  4. 3

    Utilice esta función para obtener la dirección MAC de clientes:

    function GetClientMac(){
        $macAddr=false;
        $arp=`arp -n`;
        $lines=explode("\n", $arp);
    
        foreach($lines as $line){
            $cols=preg_split('/\s+/', trim($line));
    
            if ($cols[0]==$_SERVER['REMOTE_ADDR']){
                $macAddr=$cols[2];
            }
        }
    
        return $macAddr;
    }
    • No funciona en Linux sistema
  5. 3

    He aquí una posible manera de hacerlo:

    $string=exec('getmac');
    $mac=substr($string, 0, 17); 
    echo $mac;
    • Esto no funciona en el Sistema Linux, e incluso si el trabajo que usted obtiene la dirección Mac del servidor que se está ejecutando la secuencia de comandos, por lo que Ningún Cliente de la Dirección Mac
  6. 2

    La idea es, mediante el comando cmd ipconfig /all y extraer sólo la dirección mac.

    Que su índice de $pmac+33.

    Y el tamaño de mac es de 17.

    <?php
    ob_start();
    system('ipconfig /all');
    $mycom=ob_get_contents();
    ob_clean();
    $findme = 'physique';
    $pmac = strpos($mycom, $findme);
    $mac=substr($mycom,($pmac+33),17);
    echo $mac;
    ?>
  7. 0
    <?php
    
        ob_start();
        system('ipconfig/all');
        $mycom=ob_get_contents(); 
        ob_clean(); 
        $findme = "Physical";
        $pmac = strpos($mycom, $findme); 
        $mac=substr($mycom,($pmac+36),17);
    
        echo $mac;
    ?>

    Imprime la dirección mac de la máquina cliente

  8. -1

    Primera comprobar que el agente de usuario de sistema operativo Linux o windows u otro.
    Luego de Su sistema operativo Windows, a Continuación, este código se utilice:

    public function win_os(){ 
        ob_start();
        system('ipconfig-a');
        $mycom=ob_get_contents(); //Capture the output into a variable
        ob_clean(); //Clean (erase) the output buffer
        $findme = "Physical";
        $pmac = strpos($mycom, $findme); //Find the position of Physical text
        $mac=substr($mycom,($pmac+36),17); //Get Physical Address
    
        return $mac;
       }

    Y su sistema operativo Linux Ubuntu o Linux, este código se utilice:

    public function unix_os(){
        ob_start();
        system('ifconfig -a');
        $mycom = ob_get_contents(); //Capture the output into a variable
        ob_clean(); //Clean (erase) the output buffer
        $findme = "Physical";
        //Find the position of Physical text 
        $pmac = strpos($mycom, $findme); 
        $mac = substr($mycom, ($pmac + 37), 18);
    
        return $mac;
        }

    Este código puede ser en el trabajo OS X.

  9. -1

    Al cliente del dispositivo ip y la dirección mac

    {
        if (isset($_SERVER['HTTP_CLIENT_IP']))
            $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
        else if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_X_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
        else if(isset($_SERVER['HTTP_FORWARDED_FOR']))
            $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
        else if(isset($_SERVER['HTTP_FORWARDED']))
            $ipaddress = $_SERVER['HTTP_FORWARDED'];
        else if(isset($_SERVER['REMOTE_ADDR']))
            $ipaddress = $_SERVER['REMOTE_ADDR'];
        else
            $ipaddress = 'UNKNOWN';
    
        $macCommandString   =   "arp " . $ipaddress . " | awk 'BEGIN{ i=1; } { i++; if(i==3) print $3 }'";
    
        $mac = exec($macCommandString);
    
        return ['ip' => $ipaddress, 'mac' => $mac];
    }
  10. -5
    //Simple & effective way to get client mac address
    //Turn on output buffering
    ob_start();
    //Get the ipconfig details using system commond
    system('ipconfig /all');
    
    //Capture the output into a variable
    
        $mycom=ob_get_contents();
    
    //Clean (erase) the output buffer
    
        ob_clean();
    
    $findme = "Physical";
    //Search the "Physical" | Find the position of Physical text
    $pmac = strpos($mycom, $findme);
    
    //Get Physical Address
    $mac=substr($mycom,($pmac+36),17);
    //Display Mac Address
    echo $mac;
    • PHP es serverside, este muestra los servidores de detalles.
    • para mí no muestra nada. Tengo hosting linux. no hay ningún error, ningún aviso, ninguna salida
    • ipconfig es solo para Windows, y este es el lado del servidor. En todos los escenarios del mundo real, es imposible obtener una dirección MAC de clientes en PHP y no debería ser ningún caso donde se desea.

Dejar respuesta

Please enter your comment!
Please enter your name here