Quote:
Originally Posted by eWish
Writing the code is going to be up to you. If you have problems we will be glad to help.
Check CPAN for Net::Domain and Net::Mac
Perlfaq9
--Kevin
Hi Kevin,
I have written some code , which gives me IP address as well as Host name , but not the MAC address.I am not sure , how can i Get the MAC address of particular IP address using PHP..
My code is ,
-
<?php
-
<?php
-
echo "IP Address Is : ";
-
echo $_SERVER['HTTP_X_FORWARDED_FOR']; // Show IP
-
-
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
-
-
echo " Host Name : ";
-
echo gethostbyaddr($ip);
-
$mac = returnMacAddress();
-
function returnMacAddress() {
-
-
// 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 = $ip;
-
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;
-
}
-
-