當前位置:首頁 » 編程語言 » php唯一標識

php唯一標識

發布時間: 2023-08-22 16:59:26

php GUID生成函數和類

一、GUID簡介
GUID:
即Globally
Unique
Identifier(全球唯一標識符)
也稱作
UUID(Universally
Unique
IDentifier)

GUID是一個通過特定演算法產生的二進制長度為128位的數字標識符,用於指示產品的唯一性。GUID
主要用於在擁有多個節點、多台計算機的網路或系統中,分配必須具有唯一性的標識符。

Windows
平台上,GUID
廣泛應用於微軟的產品中,用於標識如如注冊表項、類及介面標識、資料庫、系統目錄等對象。
GUID
的格式為「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」,其中每個
x

0-9

a-f
范圍內的一個32位十六進制數。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF
即為有效的
GUID
值。
二、GUID的優點
1.GUID在空間上和時間上具有唯一性,保證同一時間不同地方產生的數字不同。
2.世界上的任何兩台計算機都不會生成重復的
GUID
值。
3.需要GUID的時候,可以完全由演算法自動生成,不需要一個權威機構來管理。
4.GUID的長度固定,並且相對而言較短小,非常適合於排序、標識和存儲
三、GUID生成函數
復制代碼
代碼如下:
function
create_guid()
{

$charid
=
strtoupper(md5(uniqid(mt_rand(),
true)));

$hyphen
=
chr(45);//
"-"

$uuid
=
chr(123)//
"{"

.substr($charid,
0,
8).$hyphen

.substr($charid,
8,
4).$hyphen

.substr($charid,12,
4).$hyphen

.substr($charid,16,
4).$hyphen

.substr($charid,20,12)

.chr(125);//
"}"

return
$uuid;
}
三、GUID生成類
PHP獲得GUID類:guid_class.php
復制代碼
代碼如下:
<?php
class
System
{

function
currentTimeMillis()

{

list($usec,
$sec)
=
explode("
",microtime());

return
$sec.substr($usec,
2,
3);

}
}
class
NetAddress
{

var
$Name
=
'localhost';

var
$IP
=
'127.0.0.1';

function
getLocalHost()
//
static

{

$address
=
new
NetAddress();

$address->Name
=
$_ENV["COMPUTERNAME"];

$address->IP
=
$_SERVER["SERVER_ADDR"];

return
$address;

}

function
toString()

{

return
strtolower($this->Name.'/'.$this->IP);

}
}
class
Random
{

function
nextLong()

{

$tmp
=
rand(0,1)?'-':'';

return
$tmp.rand(1000,
9999).rand(1000,
9999).rand(1000,
9999).rand(100,
999).rand(100,
999);

}
}
//
三段
//
一段是微秒
一段是地址
一段是隨機數
class
Guid
{

var
$valueBeforeMD5;

var
$valueAfterMD5;

function
Guid()

{

$this->getGuid();

}

//

function
getGuid()

{

$address
=
NetAddress::getLocalHost();

$this->valueBeforeMD5
=
$address->toString().':'.System::currentTimeMillis().':'.Random::nextLong();

$this->valueAfterMD5
=
md5($this->valueBeforeMD5);

}

function
newGuid()

{

$Guid
=
new
Guid();

return
$Guid;

}

function
toString()

{

$raw
=
strtoupper($this->valueAfterMD5);

return
substr($raw,0,8).'-'.substr($raw,8,4).'-'.substr($raw,12,4).'-'.substr($raw,16,4).'-'.substr($raw,20);

}
}
GUID類使用方法:
復制代碼
代碼如下:
require_once("guid.class.php");
$Guid
=
new
Guid();
print
$Guid->toString();

Ⅱ PHP能否獲取客戶端唯一標識(cpu序列號,mac地址等)

許可權足夠的情況下,可以輸出cpu信息php調用:$a = exec('cat /proc/stat'); php有個執行方式是用``包裹字元串,同樣可以在系統上直接執行 同樣需要足夠的許可權。

Ⅲ php可以獲取到手機號或者唯一標識嗎

獲取不到,但是可以嘗試用cookie一類的給用戶做標記

Ⅳ PHP可以獲取到手機號或者唯一標識嗎

可以,用is_numeric 和strlen 函數來寫,最後用正則來判斷是否為手機號碼,是手機號碼就獲取


用 is_numeric 判斷是否為數字

用 strlen 判斷長度是否為11位數或12位數,12位數判斷第一位數是否為0,基本上打外省電話需要在號碼前加0

$text='15812345678';
$search='/^(1(([35][0-9])|(47)|[8][0126789]))d{8}$/';
if(preg_match($search,$text)){
echo'手機完全符合';
}else{
echo'手機格式不符合';
}

Ⅳ php如何獲取客戶端唯一標識符IPmac地址

<?php
classGetMacAddr{
var$return_array=array();//返回帶有MAC地址的字串數組
var$mac_addr;
functionGetMacAddr($os_type){
switch(strtolower($os_type)){
case"linux":$this->forLinux();break;
default:$this->forWindows();break;
}
$temp_array=array();
foreach($this->return_arrayas$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];
break;
}
}
unset($temp_array);
return$this->mac_addr;
}
functionforWindows(){
@exec("ipconfig/all",$this->return_array);
if($this->return_array)
return$this->return_array;
else{
$ipconfig=$_SERVER["WINDIR"]."system32ipconfig.exe";
if(is_file($ipconfig))
@exec($ipconfig."/all",$this->return_array);
else
@exec($_SERVER["WINDIR"]."systemipconfig.exe/all",$this->return_array);
return$this->return_array;
}
}
}
//---實例化類
$mac=newGetMacAddr(PHP_OS);
echo$mac->mac_addr;
echo"<br/>";
echomd5($mac->mac_addr);
?>
以上代碼是獲取mac地址的代碼,在網上抄的,但實測有效,括弧,我x,我第一次知道原來php也可以執行命令行。。。

至於如何限制,應該是去截取mac的一部分經行if判斷就可以了,你先嘗試一下

熱點內容
c語言中的temp 發布:2025-02-05 02:43:08 瀏覽:123
阿里雲伺服器共享電腦 發布:2025-02-05 02:42:18 瀏覽:417
伺服器有多少台電腦 發布:2025-02-05 02:40:41 瀏覽:447
安卓手機為什麼最新微信安裝不了 發布:2025-02-05 02:31:03 瀏覽:106
安卓手機什麼時候開售 發布:2025-02-05 02:14:15 瀏覽:660
編程車模型 發布:2025-02-05 02:09:55 瀏覽:681
雅馬哈天劍哪個配置好 發布:2025-02-05 02:00:35 瀏覽:170
我的世界國際服推薦118伺服器 發布:2025-02-05 01:50:48 瀏覽:46
普通電腦做伺服器怎麼操作 發布:2025-02-05 01:46:22 瀏覽:628
原神為什麼同伺服器加不起好友 發布:2025-02-05 01:41:03 瀏覽:337