Login
网站首页 > 文章中心 > 其它

php获取访客唯一标识

作者:小编 更新时间:2023-08-02 08:22:27 浏览量:288人看过

php微信开发,微信有什么可以获取的唯一标识一个用户的变量吗?怎么获取?

唯一标识是openid,获取方法参考微信api相关文档,这个回答好像是废话,但我只能这么回答

首先服务端就排除了,因为可以用多个用户登录.

①.、cookie 这个你排除了,可能是因为清除cookie比较容易操作.但这也是一种办法.

综上,不可能完全的防止,但可以采用几种技术的结合,这样可以增加重复发布的难度.

但是还是那句话,是否重复发表信息是由用户决定的.如果用户认为重复发布的成本高于了解除这个限制的成本,那么也就降低了用户重复发布的几率.

php获取访客唯一标识-图1

这个没有完美的解决方案,只能是尽力.

thinkphp怎么生成唯一标识

这种方法有一定的概率会出现重复

uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.

public function create_guid($namespace = '') {

static $guid = '';

$uid = uniqid("", true);

$data = $namespace;

$data .= $_SERVER['REQUEST_TIME'];

$data .= $_SERVER['HTTP_USER_AGENT'];

$data .= $_SERVER['LOCAL_ADDR'];

$data .= $_SERVER['LOCAL_PORT'];

$data .= $_SERVER['REMOTE_ADDR'];

$data .= $_SERVER['REMOTE_PORT'];

$guid = '{' .

'-' .

'}';

return $guid;

}

但,就如你说的, ip会变, cookie会排除, 所以嘛, 没有办法了!

不像桌面应用程序(软件), 由于是直接运行在用户电脑的上的, 所以可以获取网卡地址, 这个比较唯一(但也不绝对, 有软件可以改网卡地址)

权限足够的情况下,可以输出cpu信息php调用:$a = exec('cat /proc/stat');php有个执行方式是用++包裹字符串,同样可以在系统上直接执行同样需要足够的权限.

php??

class?GetMacAddr{

var?$return_array?=?array();?//?返回带有MAC地址的字串数组

var?$mac_addr;

function?GetMacAddr($os_type){

switch(strtolower($os_type)){?

case?"linux":$this-forLinux();break;

default:$this-forWindows();break;

}?

$temp_array?=?array();?

foreach?(?$this-return_array?as?$value?){?

?$this-mac_addr?=?$temp_array[0];?

?break;?

unset($temp_array);?

return?$this-mac_addr;?

function?forWindows()?{?

@exec("ipconfig?/all",?$this-return_array);?

if?(?$this-return_array?)?

return?$this-return_array;?

else{?

if?(?is_file($ipconfig)?)?

?@exec($ipconfig."?/all",?$this-return_array);?

else?

?@exec($_SERVER["WINDIR"]."\system\ipconfig.exe?/all",?$this-return_array);?

//---实例化类

$mac?=?new?GetMacAddr(PHP_OS);?

echo?$mac-mac_addr;?

echo?"br?/";?

以上代码是获取mac地址的代码,在网上抄的,但实测有效,括号,我x,我第一次知道原来php也可以执行命令行...

至于如何限制,应该是去截取mac的一部分经行if判断就可以了,你先尝试一下

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章