Nasıl MAC ve PHP bağlı istemci IP adresini alabilir miyim?

6 Cevap php

Ben MAC bilmeniz gerekir ve bağlantı müşterilerin IP adresi, PHP bunu nasıl yapabilirim?

6 Cevap

Server IP

Sen $_SERVER['SERVER_ADDR'] gelen sunucu IP adresi alabilirsiniz.

Server MAC address

MAC adresi için, Linux netstat -ie çıkışını ayrıştırmak, ya ipconfig /all Windows.

Client IP address

Sen $_SERVER['REMOTE_ADDR'] İstemci IP alabilirsiniz

Client MAC address

if the client is on the same ethernet segment as the server.: İstemci MAC adresi bir özel durum dışında sizin için uygun olmayacaktır

Eğer aynı ethernet segmenti üzerinde are LAN tabanlı sistemi ve bazı müşterileri türlü bina Yani, o zaman arp -n (linux) çıkışını ayrıştırma MAC adresini alabilir veya arp -a (windows).

Edit: Bir dış komutunun çıktısını almak için nasıl yorumlarda sormak - tek yönlü backticks kullanmaktır, örneğin

$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];
   }
}

But what if the client isn't on a LAN?

Eğer istemci diğer yollarla bu bilgileri gönüllü ve iletmek olabilir sürece Peki, şans bitti. Javascript kullanarak Peter G Mac'in öneri bakın.

(HTTP isteği yayınladı bilgisayar anlamında) bir istemci MAC adresi istemci ve sunucu arasındaki her yönlendirici tarafından yazılır.

İstemci IP uygun $_SERVER['REMOTE_ADDR'] olarak komut verilir. Bazı senaryolarda, web sunucusu, bir proxy (yani bir önbellekli vekil) arkasında özellikle $_SERVER['REMOTE ADDR'] {genellikle, proxy IP'sini dönecektir, ve ekstra bir değer olacaktır [(3)]}, bu özgün istek istemci IP içerir.

Eğer kontrol etmiyoruz anonymizing vekil ile uğraşırken Bazen, özellikle, vekil gerçek IP adresini değil dönecektir, ve sizin için umut olabilir proxy IP adresidir.

Never say never :) You can bridge client-server with javascript.

Look at this link Javascript MAC finder

Yukarıdaki javascript kodunu kullanan ve güvenlik izinlerini verdiği tarafından. Bir değişkene sonucu ayarlayın ve PHP dosyasına Ajax (jQuery ile) üzerinde MAC değerini göndermek `

; var = ": FF: AB: CC DD 00" tespit

$.post("MAC-log.php", { id: detected} );

Ben PHP MAC adresini almak sanmıyorum, ama $_SERVER['REMOTE_ADDR'] değişkeni IP alabilirsiniz.

Yapmanız gereken tüm diferrent gruba arp koymaktır.

Varsayılan:

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

Komutu ile:

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

alırsınız:

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

Apache kullanıcı www-verilerinin altında çalışan bir servistir çünkü, şimdi bu komutu çalıştırmak mümkün değil.

Şimdi bir PHP komut dosyası kullanırsanız Yani, mesela:

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

Eğer linux arp -an komutu çıktısını alırsınız.

Use this class (https://github.com/BlakeGardner/php-mac-address)

Bu Unix, Linux ve Mac OS X işletim sistemleri üstünde MAC adresi manipülasyon için bir PHP sınıfı. öncelikle kablosuz güvenlik denetimlerinde sızdırma ile yardımcı olmak için yazılmıştır.