当前位置:首页 » 编程语言 » 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判断就可以了,你先尝试一下

热点内容
服务器有多少台电脑 发布: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 浏览:680
雅马哈天剑哪个配置好 发布: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
android连接打印机 发布:2025-02-05 01:40:09 浏览:959
外国电脑代理服务器地址端口 发布:2025-02-05 01:38:30 浏览:387