php獲取機器碼
1. 利用php怎麼獲取用戶ip
php獲取用戶真實ip的方法:
方法1:
//獲取REMOTE_ADDR屬性,直接可以得到ip
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
方法2:
//從Server中獲取HTTP_VIA,如果獲取到就用HTTP_X_FORWARDED_FOR的值替換,如果獲取不到就取REMOTE_ADDR的值。
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] :
$_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP;
方法3:
function getRealIp()
{
$ip=false; //初始化ip為false
if(!empty($_SERVER["HTTP_CLIENT_IP"])){ //如果HTTP_CLIENT_IP不為空
$ip = $_SERVER["HTTP_CLIENT_IP"]; //獲取HTTP_CLIENT_IP的值
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { //如果HTTP_X_FORWARDED_FOR不為空
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
//把HTTP_X_FORWARDED_FOR的值用,分割後存放數組ips
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }//遍歷處理
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i]; //獲得真實ip
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo getRealIp();
2. 在php中如何取鍵
php中獲取鍵值對的鍵有兩種方式,都是通過函數來實現斗蔽春。
一種是通過array_search來查詢,一種空耐是通過array_keys來查並搭詢。
3. php如何獲取伺服器的硬碟序列號或者網卡物理MAC地址
PHP獲取網卡MAC地址的方法- -
做一個限定用戶登錄的東西時用到這段代碼,可能還有人會用到,拿出來分享......
<?php
@exec("ipconfig /all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
if(eregi("Physical",$array[$Tmpa])){
$mac=explode(":",$array[$Tmpa]);
echo $mac[1];
}
}
?>
4. php 獲取客戶端的MAC地址
MAC地址是不可以的,瀏覽器就攔擊了,那個只是區域網內使用的。也就是許多通過路由器的廣域網用戶,根本就不把MAC地址傳給WEB伺服器,PHP程序是不可能獲得的。
你要限制用戶,只有使用證書,登錄賬戶等方法實現。
5. php 獲取客戶端的電腦名稱
PHP在區域網中獲取客戶端計算機名、IP地址
<?
//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;
}
//www.51qgj.com
$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測試過 可能無效