標籤:
可以採用機器(電腦)唯一碼 + 上傳IP + 目前時間戳 + GUID ( + 隨機數),然後MD5做為檔案名稱。機器唯一碼有電腦的CPU資訊和MAC地址,這兩個資訊需要在linux或unix系統下才能擷取吧。
//擷取電腦的CPU資訊
function OnlyU(){
$a = ‘‘;
$b = array();
if(function_exists(‘exec‘)){
if(mailto:[email protected]( /all",$b)){
return false;
}
}elseif(function_exists(‘system‘)){
ob_start();
if(mailto:[email protected]( /all")){
return false;
}else{
}
$b = ob_get_contents();
ob_end_clean();
$b = explode("\n",$b);//print_r($b);
array_pop($b);
}else{
return false;
}
$all = sizeof($b);
for($i = 0; $i < $all; $i++){
if(strpos($b[$i],"Description") !== false){
if(strpos($b[$i+1],"Physical Address") !== false){
$c = explode(":",$b[$i+1]);
$a = trim($c[1]);
break;
}
}
} // End for
return empty($a)?false:$a;
} // End function OnlyU
//擷取網卡的MAC的地址
function getMAC() {
@exec("ipconfig /all",$array);
for($Tmpa;$Tmpa<count($array);$Tmpa++){
if(eregi("Physical",$array[$Tmpa])){
$mac=explode(":",$array[$Tmpa]);
return $mac[1];
}
}
}
// 產生guid字串
function guid($separated = true) {
if (function_exists ( ‘com_create_guid‘ )) {
$charid = substr ( strtolower ( com_create_guid () ), 1, - 1 );
if (! $separated)
return str_replace ( ‘-‘, ‘‘, $charid );
else
return $charid;
} else {
// 產生一個隨機的md5串, 然後通過分割來 獲得guid
mt_srand ( ( double ) microtime () * 10000 );
$charid = md5 ( uniqid ( rand (), true ) );
}
if (! $separated) {
return $charid;
}
$hyphen = chr ( 45 );
$uuid = substr ( $charid, 0, 8 ) . $hyphen . substr ( $charid, 8, 4 ) . $hyphen . substr ( $charid, 12, 4 ) . $hyphen . substr ( $charid, 16, 4 ) . $hyphen . substr ( $charid, 20, 12 );
return $uuid;
}
MD5做為檔案名稱。機器唯一碼有電腦的CPU資訊和MAC地址,這兩個資訊需要在linux或unix系統下才能擷取吧。