22
09月
2015
-
<?
-
//php获取ip的算法
-
if(getenv('HTTP_CLIENT_IP')) {
-
$onlineip = getenv('HTTP_CLIENT_IP');
-
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
-
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
-
} elseif(getenv('REMOTE_ADDR')) {
-
$onlineip = getenv('REMOTE_ADDR');
-
} else {
-
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
-
}
-
exec ("ping $onlineip");
-
$macaddress=exec ("arp -a | find /i".' "'.$onlineip.'"');
-
$computername=exec ('nbtstat -A'.' '.$onlineip.' | find /i "20"');
-
$MacName=(preg_split("/\s+/", trim($macaddress)));
-
$UserName=(preg_split("/\s+/", trim($computername)));
-
echo "计算机名:".$UserName[0]." --- "."IP 地址:".$MacName[0]." --- "."MAC
地址:".$MacName[1];
-
?>
-
-
class GetMacAddr
-
{
-
var $return_array = array(); // 返回带有MAC地址的字串数组
-
var $mac_addr=array();
-
-
function GetMacAddr()
-
{
-
switch (strtolower(PHP_OS) )
-
{
-
case "linux":$this->forLinux();break;
-
case "solaris":break;
-
case "unix":break;
-
case "aix":break;
-
default:$this->forWindows();break;
-
}
-
-
-
$temp_array = array();
-
foreach ( $this->return_array as $value )
-
{
-
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",
$value, $temp_array ) )
-
{
-
$this->mac_addr[] = $temp_array[0];
-
}
-
}
-
unset($temp_array);
-
return $this->mac_addr;
-
}
-
-
function forWindows()
-
{
-
@exec("ipconfig /all", $this->return_array);
-
if ( $this->return_array )
-
return $this->return_array;
-
else{
-
$ipconfig = $_SERVER["WINDIR"]."\system32\ipconfig.exe";
-
if ( is_file($ipconfig) )
-
@exec($ipconfig." /all", $this->return_array);
-
else
-
@exec($_SERVER["WINDIR"]."\system\ipconfig.exe /all",
$this->return_array);
-
return $this->return_array;
-
}
-
}
-
-
function forLinux()
-
{
-
@exec("ifconfig -a", $this->return_array);
-
return $this->return_array;
-
}
-
}
-
-
$mac = new GetMacAddr();
-
echo "<pre>";
-
print_r( $mac->mac_addr);
?>
获取客户端MAC(经过测试 无效 除非在同一个网关内)
-
-
function GetClientMac() {
-
$return_array = array();
-
$temp_array = array();
-
$mac_addr = "";
-
@exec("arp -a",$return_array);
-
foreach($return_array as $value) {
-
if(strPos($value,$_SERVER["REMOTE_ADDR"]) !== false &&
preg_match("/(:?[0-9a-f]{2}[:-]){5}[0-9a-f]{2}/i",$value,$temp_array)) {
-
$mac_addr = $temp_array[0];
-
break;
-
}
-
}
- return ($mac_addr);
特殊说明,本文版权归 ning个人博客 所有带原创标签请勿转载,转载请注明出处.