Вземане на MAC адрес на потребител

Illusion

Registered
Трябва ми този скрипт - http://www.ipaddresslocation.org/macaddressapplet/web/find-mac-address.php ,някой може ли да помогне?
 
Код:
// Get the arp executable path
$location = `which arp`;
// Execute the arp command and store the output in $arpTable
$arpTable = `$location`;
// Split the output so every line is an entry of the $arpSplitted array
$arpSplitted = split("\n",$arpTable);
// Get the remote ip address (the ip address of the client, the browser)
$remoteIp = $GLOBALS['REMOTE_ADDR'];
// Cicle the array to find the match with the remote ip address
foreach ($arpSplitted as $value) {
// Split every arp line, this is done in case the format of the arp
// command output is a bit different than expected
$valueSplitted = split(" ",$value);
foreach ($valueSplitted as $spLine) {
if (preg_match("/$remoteIp/",$spLine)) {
$ipFound = true;
}
// The ip address has been found, now rescan all the string
// to get the mac address
if ($ipFound) {
// Rescan all the string, in case the mac address, in the string
// returned by arp, comes before the ip address
// (you know, Murphy's laws)
reset($valueSplitted);
foreach ($valueSplitted as $spLine) {
if (preg_match("/[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f][:-]".
"[0-9a-f][0-9a-f]/i",$spLine)) {
return $spLine;
}
}
}
$ipFound = false;
}
}
return false;
}

Аз ползвам това, но трябва потребителя с който изпълняваш всичко в apache да има права да изпълнява системни команди...
 
Кода и без това е с грешка.

Parse error: syntax error, unexpected '}' in C:\Program Files\VertrigoServ\www\a4t\getmac.php on line 41
 
Код:
<?php
ob_start();
$ip = rtrim($_SERVER['REMOTE_ADDR']);
$arp = strtoupper(exec("/usr/sbin/arp -n $ip"));
preg_match('/([0-9A-F]+:[0-9A-F]+:[0-9A-F]+:[0-9A-F]+:[0-9A-F]+:[0-9A-F]+)/i', $arp, $out);
echo $out[0];
?>

Я пробвай този... Този е друг объркал съм кодовете.. Дадох ти стар... После се усетих, че ползвам тоз като си прегледах файловете...
 
Добре и как да позволя на потребителя да изпълнява системни команди?
 
Еми ти си с Windows... трябва да търсим командата за windows чакай да тествам и ще ти кажа...

ЕДИТ: arp -a го промени да стане...
 
djpatzo каза:
Еми ти си с Windows... трябва да търсим командата за windows чакай да тествам и ще ти кажа...
Качих скрипта на хостинг, който използва Linux и като резултат не ми се показва нищо.
 
Я пробвай това.... Попринцип трябва 1-во да вземеш IP адреса на този който е посетил. Ако отваряш http://localhost няма да се появи нищо, защото IP 127.0.0.1 никога не се извежда в arp таблицата...
Код:
<?php
//First get the IP address then use the
//DOS command + only get row with client IP address
//This takes only one line of the ARP table instead
//of what could be a very large table of data to
//hopefull give a small speed/performance advantage

$remoteIp = rtrim($_SERVER['REMOTE_ADDR']);
$location = rtrim(`arp -a $remoteIp`);
print_r($remoteIp.$location);//display

//reduce no of white spaces then
//Split up into array element by white space
$location = preg_replace('/\s+/', 's', $location);
$location = split('\s',$location);//

$num=count($location);//get num of array elements
$loop=0;//start at array element 0
while ($loop<$num)
{
//mac address is always one after the
//IP after inserting the firstline
//(preg_replace) line above.
if ($location[$loop]==$remoteIp)
{
$loop=$loop+1;
echo "<h1>Client MAC Address:- ".$location[$loop]."</h1>";
$_SESSION['MAC'] = $loop;
return;
}
else {$loop=$loop+1;}
}
}
?>

Предния код, който ти дадох е готов за Centos сървър... /usr/sbin/arp ми се стартира пакета за arp там са приложенията на линукса... За Windows пишеш директно arp -n $_SERVER['REMOTE_ADDR']
 
Това, както и останалите кодове, които ми даде пробвах преди да постна тази тема. Нищо не ми помогна и не доведе до резултата, който ми трябва.
 
То добре си пише с какво става най - добре:
MAC Address Finder require JAVA. Please wait...

Това което предлагаш е полезно, но на споделени хостове неможе да се изпълняват exec() команди, което прави кода неприложим :)

Трябва си Java приложение явно :)
 
не може да вземеш MAC адрес на потребител освен ако не е в твоята мрежа!!!

Примерно ако сървърати е IP: 192.168.1.1

ще може да вземеш MAC адреса само от твоята мрежа:
192.168.1.х !!!
 
ddevil каза:
не може да вземеш MAC адрес на потребител освен ако не е в твоята мрежа!!!

Примерно ако сървърати е IP: 192.168.1.1

ще може да вземеш MAC адреса само от твоята мрежа:
192.168.1.х !!!

Тогава как ще обясниш този скрип - http://www.ipaddresslocation.org/macaddressapplet/web/find-mac-address.php ? Аз не съм в мрежата на сайта, а ми разбира МАК адреса.

Както казват хората - няма невъзможни неща :wink:
 
javascript !!! не php !?!?

Пък и това ти взима мак-а на pc-то от което отваряш сайта.

Как ще го вържеш с IP примерно

аз в момента минавам през 3 роутера всички различни ip-ta mac

демек ако седна с 5 лаптопа примерно зад този роутер всички ще излизат с едно IP различни макове !!![/i]
 
С PHP скрипт може да се взима mac адреса само на компютри от твоята мрежа, но ако имаш инсталирана Java на компютъра е напълно нормално с Java аплет да ти вземат mac адреса. Лошото е, че малко хора имат Java runtime на компютъра, не съм виждал официална статистика де, само предполагам.
 
gLaVoReZa каза:
С PHP скрипт може да се взима mac адреса само на компютри от твоята мрежа, но ако имаш инсталирана Java на компютъра е напълно нормално с Java аплет да ти вземат mac адреса. Лошото е, че малко хора имат Java runtime на компютъра, не съм виждал официална статистика де, само предполагам.

Много правилно казано !!!
 

Back
Горе