php获取访客唯一标识,php获取用户唯一标识

发布时间:2022-11-24

本文目录一览:

  1. php微信开发,微信有什么可以获取的唯一标识一个用户的变量吗?怎么获取?
  2. php 如何获取客户端唯一标识
  3. thinkphp怎么生成唯一标识
  4. php 如何获取客户端唯一标识?
  5. PHP能否获取客户端唯一标识(cpu序列号,mac地址等)
  6. php如何获取客户端唯一标识符IP?mac地址?

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

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

php 如何获取客户端唯一标识

标识一个客户端: 首先服务端就排除了,因为可以用多个用户登录。 然后看客户端有什么办法,只能是采用客户端存储的方式

  1. cookie 这个你排除了,可能是因为清除cookie比较容易操作。但这也是一种办法。
  2. 客户端的dom存储,这个有一定的局限,只有新的浏览器支持。而且同样可以删除。
  3. 插件方式,这个需要客户安装,一般不可能,但可以利用比较流行的安装率比较高的插件,例如flash,采用flash的本地存储记录。同样可以删除。 综上,不可能完全的防止,但可以采用几种技术的结合,这样可以增加重复发布的难度。 但是还是那句话,是否重复发表信息是由用户决定的。如果用户认为重复发布的成本高于了解除这个限制的成本,那么也就降低了用户重复发布的几率。 这个没有完美的解决方案,只能是尽力。

thinkphp怎么生成唯一标识

  1. md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复
  2. php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的。如需生成绝对唯一的 ID,请使用 md5() 函数"。
  3. 官方uniqid()参考手册有用户提供的方法,结果类似:{E2DFFFB3-571E-6CFC-4B5C-9FEDAAF2EFD7}
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'];
    $hash = strtoupper(hash('ripemd128', $uid . $guid . md5($data)));
    $guid = '{' .
    substr($hash, 0, 8) .
    '-' .
    substr($hash, 8, 4) .
    '-' .
    substr($hash, 12, 4) .
    '-' .
    substr($hash, 16, 4) .
    '-' .
    substr($hash, 20, 12) .
    '}';
    return $guid;
}

php 如何获取客户端唯一标识?

回答你第一个问题, 相对情况下, 获取客户端, 只能是ip, cookie 但,就如你说的, ip会变, cookie会排除, 所以嘛, 没有办法了! 不像桌面应用程序(软件), 由于是直接运行在用户电脑的上的, 所以可以获取网卡地址, 这个比较唯一(但也不绝对, 有软件可以改网卡地址) 但php一般是网站形式, 获取客户端的网卡地址, 需要用户授权允许, 否则是获取不到的!

PHP能否获取客户端唯一标识(cpu序列号,mac地址等)

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

php如何获取客户端唯一标识符IP?mac地址?

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 ){
            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;
    }
    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;
        }
    }
}
//---实例化类
$mac = new GetMacAddr(PHP_OS);
echo $mac->mac_addr;
echo "<br />";
echo md5($mac->mac_addr);
?>

以上代码是获取mac地址的代码,在网上抄的,但实测有效,括号,我x,我第一次知道原来php也可以执行命令行。。。 至于如何限制,应该是去截取mac的一部分进行if判断就可以了,你先尝试一下