Wie kann ich die MAC- und die IP-Adresse eines verbundenen Clients in PHP abrufen?

Lesezeit: 5 Minuten

Wie kann ich die MAC und die IP Adresse eines verbundenen
Neun

Ich muss die MAC- und die IP-Adresse der Connect-Clients kennen, wie kann ich das in PHP tun?

  • IP-Adresse von was? Von dem Client, der verbunden ist?

    – Palantir

    14. September 2009 um 8:48 Uhr

  • Adresse des Servers oder eines Besuchers?

    – KiNgMaR

    14. September 2009 um 8:48 Uhr

  • Zu welchem ​​Zweck möchten Sie die MAC-Adresse? Ist Ihnen bewusst, dass es vom Benutzer geändert werden kann?

    – Benutzer207421

    13. Mai 2012 um 23:31 Uhr

  • @EJP Ich habe einen Anwendungsfall für die MAC-Adresse. Ich möchte je nach Gerät, das die Webseite anfordert, unterschiedliche Informationen bereitstellen. Gibt es eine andere Möglichkeit, eindeutige Informationen des Geräts zu erhalten, das die Seite anfordert?

    – Dante

    29. Mai 2018 um 20:39 Uhr

Wie kann ich die MAC und die IP Adresse eines verbundenen
Paul Dixon

Server-IP

Sie können die Server-IP-Adresse von erhalten $_SERVER['SERVER_ADDR'].

MAC-Adresse des Servers

Für die MAC-Adresse könnten Sie die Ausgabe von analysieren netstat -ie unter Linux bzw ipconfig /all unter Windows.

Client-IP-Adresse

Sie können die Client-IP von erhalten $_SERVER['REMOTE_ADDR']

Client-MAC-Adresse

Die Client-MAC-Adresse steht Ihnen außer in einem besonderen Fall nicht zur Verfügung: wenn sich der Client im selben Ethernet-Segment wie der Server befindet.

Also, wenn Sie eine Art LAN-basiertes System und Ihre Clients aufbauen sind im selben Ethernet-Segment, dann könnten Sie die MAC-Adresse erhalten, indem Sie die Ausgabe von analysieren arp -n (Linux) bzw arp -a (Fenster).

Bearbeiten: Sie fragen in Kommentaren, wie Sie die Ausgabe eines externen Befehls erhalten – eine Möglichkeit besteht darin, Backticks zu verwenden, z

$ipAddress=$_SERVER['REMOTE_ADDR'];
$macAddr=false;

#run the external command, break output into lines
$arp=`arp -a $ipAddress`;
$lines=explode("\n", $arp);

#look for the output line describing our IP address
foreach($lines as $line)
{
   $cols=preg_split('/\s+/', trim($line));
   if ($cols[0]==$ipAddress)
   {
       $macAddr=$cols[1];
   }
}

Was aber, wenn sich der Client nicht in einem LAN befindet?

Nun, Sie haben Pech, es sei denn, Sie können den Kunden dazu bringen, diese Informationen freiwillig bereitzustellen und auf andere Weise zu übermitteln.

  • Wie erhalte ich die Ausgabe von arp -a mit PHP?

    – Neveen

    14. September 2009 um 12:04 Uhr

  • @paulDixon Hallo, das ist ein alter Beitrag, und ich frage mich, ob es eine neue Möglichkeit gibt, die Mac-Adresse zu erhalten.

    – jcho360

    21. Juni 2012 um 12:58 Uhr

  • @jcho360 Es ist immer noch nicht möglich, die MAC-Adresse eines Clients abzurufen. Ich erwarte sowieso nicht, dass dies passiert, da die MAC-Adresse keinen Kommunikationswert hat und daher nicht im Anforderungsheader gespeichert wird.

    – Bärenwolf

    3. Juli 2012 um 12:18 Uhr

  • @Bearwulf vielen Dank für die Antwort, das dachte ich, gibt es eine Möglichkeit, eindeutige Computer zu identifizieren, die mit einer Site verbunden sind?

    – jcho360

    3. Juli 2012 um 14:17 Uhr

  • @jcho360 Persönlich würde ich eine Kombination aus IP-Adresse + Informationen anfordern und daraus einen Hash erstellen, zum Beispiel md5($_SERVER[‘REMOTE_ADDR’] . $_SERVER[‘HTTP_USER_AGENT’]);. Es ist definitiv nicht kugelsicher, aber es ist ein Anfang. Ein weiterer einfacherer und sicherer Weg ist das Setzen eines Cookies mit einem eindeutigen Hash. Wenn Sie dieses Cookie verwenden, wissen Sie immer, welcher Benutzer sich mit Ihrer Website verbindet.

    – Bärenwolf

    5. Juli 2012 um 11:50 Uhr


Wie kann ich die MAC und die IP Adresse eines verbundenen
Michal Tatarynowicz

Die MAC-Adresse eines Clients (im Sinne des Rechners, der den HTTP-Request abgesetzt hat) wird von jedem Router zwischen Client und Server überschrieben.

Die Client-IP wird bequem dem Skript in bereitgestellt $_SERVER['REMOTE_ADDR']. In einigen Szenarien, insbesondere wenn sich Ihr Webserver hinter einem Proxy (d. h. einem Caching-Proxy) befindet $_SERVER['REMOTE ADDR'] wird die IP der zurückgeben Proxyund es wird oft einen zusätzlichen Wert geben $_SERVER['HTTP_X_FORWARDED_FOR']die die IP des ursprünglichen Anfrageclients enthält.

Manchmal, insbesondere wenn Sie es mit einem anonymisierenden Proxy zu tun haben, den Sie nicht kontrollieren, gibt der Proxy nicht die echte IP-Adresse zurück, und Sie können nur auf die IP-Adresse des Proxys hoffen.

Ich glaube nicht, dass Sie die MAC-Adresse in PHP erhalten können, aber Sie können die IP von erhalten $_SERVER['REMOTE_ADDR'] Variable.

  • Die Mac-Adresse ist nur für lokale Netzwerke sichtbar, Sie können auf die Mac-Adresse jedes Geräts außerhalb seines lokalen Netzwerks zugreifen, z. B. wird Ihre Mac-Adresse in Ihrem lokalen WLAN-Router gespeichert und sichtbar, und außerhalb davon werden alle Geräte in Ihrem Netzwerk gespeichert verwenden und mit derselben IP-Adresse kommunizieren, die der Router in die Mac-Adresse zurückübersetzt und intern sendet.

    – Dheeraj Thedijje

    16. Oktober 2016 um 9:05 Uhr

Für Windows Server denke ich, dass Sie dies verwenden können:

<?php
echo exec('getmac');
?>

1646973248 839 Wie kann ich die MAC und die IP Adresse eines verbundenen
McJ

Alles, was Sie tun müssen, ist, arp in eine andere Gruppe zu stecken.

Standard:

-rwxr-xr-x 1 root root 48K 2008-11-11 18:11 /usr/sbin/arp*

Mit Befehl:

sudo chown root:www-data /usr/sbin/arp

Sie erhalten:

-rwxr-xr-x 1 root www-data 48K 2008-11-11 18:11 /usr/sbin/arp*

Und da Apache ein Daemon ist, der unter dem Benutzer www-data läuft, kann er diesen Befehl jetzt ausführen.

Wenn Sie also jetzt ein PHP-Skript verwenden, z.

<?php
$mac = system('arp -an');
echo $mac;
?>

Sie erhalten die Ausgabe von Linux arp -an Befehl.

  • Dadurch erhalten Sie nur die MAC-Adressen der Geräte in Ihrem lokalen Netzwerk.

    Benutzer149341

    17. August 2011 um 5:11 Uhr

  • Ändern der Gruppe der arp Binär ist überflüssig, www-data hat noch Ausführungsberechtigungen von der other ummodus.

    – Urkunde02392

    6. März 2014 um 13:36 Uhr


1646973249 616 Wie kann ich die MAC und die IP Adresse eines verbundenen
pankaj

Du kannst bekommen MAC Adresse bzw Physikalische Adresse mit diesem Code

$d = explode('Physical Address. . . . . . . . .',shell_exec ("ipconfig/all"));  
$d1 = explode(':',$d[1]);  
$d2 = explode(' ',$d1[1]);  
return $d2[1];

Ich habe viele Male explodiert, weil shell_exec (“ipconfig/all”) vollständige Details des gesamten Netzwerks zurückgeben. also musst du nach und nach aufteilen. Wenn Sie diesen Code ausführen, erhalten Sie
dein MAC-Adresse 00-##-##-CV-12 //Dies ist eine gefälschte Adresse nur zur Show.

  • Dadurch erhalten Sie nur die MAC-Adressen der Geräte in Ihrem lokalen Netzwerk.

    Benutzer149341

    17. August 2011 um 5:11 Uhr

  • Ändern der Gruppe der arp Binär ist überflüssig, www-data hat noch Ausführungsberechtigungen von der other ummodus.

    – Urkunde02392

    6. März 2014 um 13:36 Uhr


1646973249 581 Wie kann ich die MAC und die IP Adresse eines verbundenen
Ali

Verwenden Sie diese Klasse (https://github.com/BlakeGardner/php-mac-address)

Dies ist eine PHP-Klasse zur Manipulation von MAC-Adressen auf Unix-, Linux- und Mac OS X-Betriebssystemen. Es wurde hauptsächlich geschrieben, um beim Spoofing für drahtlose Sicherheitsüberprüfungen zu helfen.

989870cookie-checkWie kann ich die MAC- und die IP-Adresse eines verbundenen Clients in PHP abrufen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy