Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mendapatkan Alamat MAC dan IP Pelanggan dalam PHP?

Bagaimanakah Saya Boleh Mendapatkan Alamat MAC dan IP Pelanggan dalam PHP?

Linda Hamilton
Linda Hamiltonasal
2024-12-19 15:08:14792semak imbas

How Can I Get Client MAC and IP Addresses in PHP?

Mendapatkan Alamat MAC dan IP Pelanggan dalam PHP

Memahami identiti pelanggan yang disambungkan selalunya penting untuk tujuan pentadbiran dan pemantauan rangkaian. PHP menyediakan kaedah untuk mendapatkan kedua-dua alamat MAC dan IP pelanggan ini.

Alamat IP dan MAC Pelayan

Mendapatkan semula alamat IP pelayan adalah mudah menggunakan $_SERVER['SERVER_ADDR']. Untuk alamat MAC, seseorang boleh menghuraikan output perintah sistem seperti netstat -iaitu dalam Linux atau ipconfig /all dalam Windows.

Alamat IP Pelanggan

Alamat IP pelanggan boleh diakses dengan mudah melalui $ _SERVER['REMOTE_ADDR'].

Alamat MAC Pelanggan

Malangnya, memperoleh alamat MAC pelanggan biasanya tidak boleh dilakukan, melainkan:

  • Pelanggan berada pada segmen Ethernet yang sama dengan pelayan.

Dalam kes sedemikian, menghuraikan output arp - n (Linux) atau arp -a (Windows) menghasilkan alamat MAC.

Satu kaedah untuk menghuraikan output arahan adalah melalui penggunaan backticks:

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

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

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

Senario Bukan LAN

Jika pelanggan tidak berada pada LAN yang sama, mendapatkan semula alamat MAC secara amnya tidak boleh dilaksanakan melalui kaedah standard. Pelanggan mungkin perlu memberikan maklumat ini secara sukarela.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Alamat MAC dan IP Pelanggan dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn