首页 > 运动玩具 专利正文
云游戏中设备信息获取的处理方法、设备及存储介质与流程

时间:2022-02-15 阅读: 作者:专利查询

云游戏中设备信息获取的处理方法、设备及存储介质与流程

1.本技术涉及游戏技术,尤其涉及一种云游戏中设备信息获取的处理方法、设备及存储介质。


背景技术:

2.目前,云游戏在手机上的实现是通过将云服务器的操作系统容器化,并在云端服务器中通过应用容器引擎(docker)并行运行多个容器,来同时服务多个用户。
3.云游戏中,用户的终端设备通过云服务器中的容器与游戏服务器进行交互。对于游戏服务器而言,其直接的交互对象是云服务器中的容器。游戏服务器会获取登录游戏的客户端的设备的信息,并根据设备的信息进行统计分析。例如根据用户的行为数据进行统计分析,以提供保障游戏稳定运行类的服务,例如是否刷号。在云游戏中,游戏服务器根据用户的行为数据进行统计分析时,是根据容器的设备信息对用户的行为数据进行统计分析。
4.然而,同一台云服务器上的多个容器中,每个容器的系统信息和硬件设备信息均是采用该云服务器的系统信息和硬件设备信息。因此,就会存在获取的设备信息不准确的问题。


技术实现要素:

5.本技术提供一种云游戏中设备信息获取的处理方法、设备及存储介质,用以解决云游戏场景下,游戏服务器获取的设备信息不准确的问题。
6.第一方面,本技术提供一种云游戏中设备信息获取的处理方法,应用于云服务器中部署的容器,所述容器中运行有目标游戏的客户端,所述方法包括:接收所述用户登录所述目标游戏的客户端之前,云服务器发送的所述用户的标识;根据所述用户的标识生成所述用户的虚拟设备信息,所述用户的虚拟设备信息用于表示所述用户的身份;将所述容器的设备信息更改为所述用户的虚拟设备信息;接收游戏服务器发送的针对容器的设备信息的获取请求;获取所述用户的虚拟设备信息,并返回至所述游戏服务器。
7.第二方面,本技术提供一种云游戏中设备信息获取的处理方法,应用于云服务器,所述方法包括:接收用户的终端设备发送的目标游戏的启动请求;对所述用户分配目标容器,所述目标容器为运行所述目标游戏的客户端的容器;获取预先存储的所述用户的标识并发送至目标容器。
8.第三方面,本技术提供一种云游戏中设备信息获取的处理方法,应用于云服务器中部署的容器,所述容器中运行有目标游戏的客户端,所述方法包括:接收云服务器发送的所述用户的虚拟设备信息,所述用户的虚拟设备信息是所述用户登录云游戏平台时,所述云服务器根据所述用户的标识生成的;将所述容器的设备信息更改为所述用户的虚拟设备信息;接收游戏服务器发送的针对容器的设备信息的获取请求;获取所述用户的虚拟设备信息,并返回至所述游戏服务器。
9.第四方面,本技术提供一种云游戏中设备信息获取的处理方法,应用于云服务器,所述方法包括:接收用户的终端设备发送的目标游戏的启动请求;对所述用户分配目标容器,所述目标容器为运行目标游戏的客户端的容器;获取预先存储的所述用户的虚拟设备信息并发送至所述目标容器,所述用户的虚拟设备信息用于表示所述用户的身份。
10.第五方面,本技术提供一种云游戏中设备信息获取的处理装置,应用于云服务器中部署的容器,所述容器中运行有目标游戏的客户端,所述装置包括:接收模块,用于接收所述用户登录所述目标游戏的客户端之前,云服务器发送的所述用户的标识;生成模块,用于根据所述用户的标识生成所述用户的虚拟设备信息,所述用户的虚拟设备信息用于表示所述用户的身份;更改模块,用于将所述容器的设备信息更改为所述用户的虚拟设备信息;所述接收模块,还用于接收游戏服务器发送的针对容器的设备信息的获取请求;获取模块,用于获取所述用户的虚拟设备信息,并返回至所述游戏服务器。
11.第六方面,本技术提供一种云游戏中设备信息获取的处理装置,应用于云服务器,所述装置包括:接收模块,用于接收用户的终端设备发送的目标游戏的启动请求;分配模块,用于对所述用户分配目标容器,所述目标容器为运行所述目标游戏的客户端的容器;获取模块,用于获取预先存储的所述用户的标识并发送至目标容器。
12.第七方面,本技术提供一种云游戏中设备信息获取的处理装置,应用于云服务器中部署的容器,所述容器中运行有目标游戏的客户端,所述装置包括:接收模块,用于接收云服务器发送的所述用户的虚拟设备信息,所述用户的虚拟设备信息是所述用户登录云游戏平台时,所述云服务器根据所述用户的标识生成的;更改模块,用于将所述容器的设备信息更改为所述用户的虚拟设备信息;所述接收模块,还用于接收游戏服务器发送的针对容器的设备信息的获取请求;获取模块,用于获取所述用户的虚拟设备信息,并返回至所述游戏服务器。
13.第八方面,本技术提供一种云游戏中设备信息获取的处理装置,应用于云服务器,所述装置包括:接收模块,用于接收用户的终端设备发送的目标游戏的启动请求;分配模块,用于对所述用户分配目标容器,所述目标容器为运行目标游戏的客户端的容器;获取模块,用于获取预先存储的所述用户的虚拟设备信息并发送至所述目标容器,所述用户的虚拟设备信息用于表示所述用户的身份。
14.第九方面,本技术提供一种服务器,包括:存储器,处理器;
15.存储器,用于存储所述处理器可执行指令的存储器;
16.其中,所述处理器被配置为用于实现如第一方面所述的方法。
17.第十方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
18.第十一方面,本技术提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
19.本技术提供的云游戏中设备信息获取的处理方法、设备及存储介质,通过接收用户登录目标游戏的客户端之前,云服务器发送的用户的标识;根据用户的标识生成用户的虚拟设备信息,用户的虚拟设备信息用于表示用户的身份;将容器的设备信息更改为用户的虚拟设备信息;接收游戏服务器发送的针对容器的设备信息的获取请求;获取用户的虚
拟设备信息,并返回至游戏服务器。由于容器的设备信息更改为用户的虚拟设备信息,因此,游戏服务器获取到的容器的设备信息能够唯一标识用户,保证同一个用户对应的虚拟设备信息为确定值,同时尽可能降低不同云游戏用户的设备信息冲突的概率。之后将更新的设备信息更新,使游戏服务器获取到的是云游戏用户的虚拟设备信息,而不是真实的设备信息,从而避免由于设备信息冲突导致的游戏登录串号,行为统计偏差等问题。
附图说明
20.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
21.图1为本技术实施例提供的应用场景示意图;
22.图2为本技术实施例提供的云游戏中设备信息获取的处理方法的交互示意图一;
23.图3为本技术实施例提供的一种图形用户界面的示意图;
24.图4为本技术实施例提供的云游戏中设备信息获取的处理方法的交互示意图二;
25.图5为本技术实施例提供的虚拟国际移动设备识别码的组合过程的示意图;
26.图6为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图一;
27.图7为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图二;
28.图8为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图三;
29.图9为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图四;
30.图10为本技术实施例提供的电子设备的结构示意图。
31.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
32.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
33.首先对本技术所涉及的名词进行解释:
34.imei码:是指国际移动设备识别码,由15-17位数字组成;
35.cloud gaming:中文为云游戏,是以云计算为基础的运行游戏的一种新方式。在云游戏模式下,游戏画面的渲染工作是在服务器端完成的,渲染后的游戏画面经过编码,经由网络串流(streaming)到游戏玩家的终端上。在客户端,游戏玩家不再需要高档的游戏设备,只需要基本的视频解码能力就可以进行游戏。
36.iccid码:集成电路卡识别码,即sim卡序列号,即手机插入的sim卡的iccid编码(sim卡的卡号),由20位数字组成,相当于手机号码的身份证。
37.mac地址:网卡硬件地址,长度为48位(6个字节),通常表示为12个16进制数。
38.android_id:一种安卓设备识别码。由系统初次启动时随机生成一个64位随机整数,并以16进制字符串的形式保存在系统设置文件中。
39.硬件序列号:一种安卓设备硬件标识符,由设备硬件信息确定,在操作系统启动时写入系统属性ro.serialno中,没有固定格式。
40.luhn算法:一种校验算法。
41.伪随机数:用确定性的算法计算出均匀分布的随机数序列。
42.docker容器:docker镜像运行的实例,同一台物理机可以运行多个docker容器。
43.图1为本技术实施例提供的应用场景示意图。如图1所示,该应用场景包括:终端设备1、云服务器2和游戏服务器3;
44.其中,终端设备1包括智能手机、平板电脑、pc等。
45.云服务器2是为用户提供云游戏服务的设备,游戏服务器是为用户真正提供游戏服务的设备。
46.云服务器2中可以运行多个容器,每个容器上运行有1个游戏客户端,即游戏的应用程序(application,app),不同的容器可以运行同一个游戏的app。
47.同一时刻,一个终端设备仅能登录一个容器,每个容器也只能服务一个终端设备;不同时刻,同一用户可以登录不同的容器。
48.通常,部分游戏的游戏服务器会根据设备信息保存登录信息,或者根据设备信息统计用户行为数据,而同一台云服务器上不同的容器,系统信息和硬件设备信息都是采用宿主机(承载容器的云服务器)的,因而同一台云服务器上不同的容器,系统信息和硬件设备信息都是相同的,例如网卡地址、硬件序列号、imei码、iccid码、android_id等。
49.在一些场景中,部分游戏的游戏服务器会根据设备信息为游客模式下的用户分配游客账号,并在游戏服务端将游客账号与设备信息进行绑定,对于同一个设备,不同时间登录的游客账号为同一个。而同一时刻,一个容器仅能服务一个用户,不同时刻,用户还可以登录不同的容器,那么假设一台云服务器上运行有容器1和容器2,若用户1登录容器1,用户2登录容器2,则由于容器1和容器2的设备信息相同,那么游戏服务器在根据设备信息为用户1和用户2分配游客账号时,就会造成两个玩家的游客账号是同一个,出现串号的情形。
50.在另一些场景中,部分游戏的游戏服务器针对同一设备有登录限制,超过一定数量的用户登录之后会将设备封禁,避免“刷号”行为。而判断是否是同一设备的方法就是获取设备信息标识进行对比。那么假设一台云服务器1上运行有容器1、容器2和容器3,若同一时刻,用户1登录容器1,用户2登录容器2,用户3登录容器3,则由于容器1、容器2和容器3的设备信息相同,游戏服务器就会将用户1、用户2和用户3识别为同一个用户,认为同一用户登录了3次,从而限制容器1、容器2和容器3登录游戏服务器。
51.在又一些场景中,部分游戏会进行用户行为数据统计,例如活跃设备分布,统计的一个维度通常是设备号。如果云游戏用户设备号有冲突,就会造成统计结果的误差。
52.针对上述技术问题,本技术的发明人提出如下技术构思:对每个用户生成一个唯一的虚拟设备信息,从而保证当不同的云游戏用户进入云游戏环境时,保证不同的云游戏用户的设备信息是不同的。并且当同一个云游戏用户在不同时间进入云游戏环境时,保证同一云游戏用户的设备信息是相同的。
53.下面基于图1所示的场景,以具体地实施例对本技术的技术方案以及本技术的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本技术的
实施例进行描述。
54.图2为本技术实施例提供的云游戏中设备信息获取的处理方法的交互示意图。如图2所示,该云游戏中设备信息获取的处理方法,包括如下步骤:
55.s201、云服务器接收用户的终端设备发送的目标游戏的启动请求。
56.在步骤s201之前,本实施例还包括如下步骤:
57.步骤a、用户的终端设备向云服务器发送云游戏平台的注册请求,该注册请求中包括用户的注册信息,该注册信息中包括云游戏平台的账户。
58.本实施例中,用户可以通过终端设备上安装的云游戏客户端注册云游戏平台。
59.步骤b、云服务器接收云游戏注册请求,并根据用户的注册信息注册该用户。
60.步骤c、云服务器对用户分配用户的标识。
61.具体的,云服务器对用户分配的标识可以表示为一个48位的整数,其范围为0~281474976710655。也就是说,当云服务器接收到用户的云游戏注册请求时,根据该用户的注册信息在0~281474976710655的范围中确定一个整数,并分配给用户。
62.更具体地,云服务器可以根据数据库的自增主键对用户确定用户的标识。举例来说,第一个注册的用户uid=10000000,那么下一个注册的用户的uid就是10000001,以此类推。
63.步骤d、云服务器生成用户的云游戏平台的账户与用户的标识之间的对应关系并进行存储。
64.步骤e、用户的终端设备向云服务器发送云游戏平台的登录请求,该云游戏平台的登录请求中包括用户的云游戏平台的账户。
65.本步骤中,云游戏平台的登录请求是指云游戏客户端的登录。
66.步骤f、云服务器对云游戏平台的登录请求进行验证。
67.步骤g、若验证通过,则返回云游戏平台登录成功的消息。
68.步骤h、用户的终端设备向云服务器发送目标游戏的启动请求,该目标游戏为用户将要进行的游戏,该目标游戏的登录请求中包括目标游戏的标识。
69.图3为本技术实施例提供的一种图形用户界面的示意图。
70.如图3所示,图形用户界面中包括云游戏客户端31,用户通过云游戏客户端登录云游戏平台后,用户的终端设备的图形用户界面中可以包括多个游戏的图标,例如图3中的游戏1至游戏6的图标,用户通过点击其中一个游戏的图标可以向云服务器发起对该目标游戏的启动请求。
71.s202、云服务器根据目标游戏的标识,对用户分配目标容器,该目标容器为运行目标游戏的容器。
72.本实施例中,目标容器可以理解为虚拟的终端设备,也就是说,对于游戏服务器而言,在游戏服务器中登录的是一个虚拟的终端设备,而非用户的终端设备。
73.具体的,云服务器是在云服务器上创建并运行一个容器作为目标容器,该目标容器上运行有目标游戏的客户端。
74.s203、云服务器获取预先存储的用户的标识并发送至目标容器。
75.具体的,云服务器是根据用户的云游戏平台的账号,用户的云游戏平台的账号与用户的标识之间的对应关系,获取用户的标识并发送至目标容器。
76.s204、目标容器接收云服务器发送的用户的标识。
77.其中,步骤s204可以理解为是用户登录目标游戏的客户端之前,云服务器接收到用户的终端设备发送的目标游戏的客户端的启动请求,对用户分配目标容器之后,向目标容器发送用户的标识。
78.s205、目标容器根据用户的标识生成用户的虚拟设备信息,用户的虚拟设备信息用于表示用户的身份。
79.在一些实施方式中,根据所述用户的标识生成所述用户的虚拟设备信息,包括:根据哈希算法对用户的标识进行处理,得到所述用户的虚拟设备信息,其中,虚拟设备信息包括:虚拟的imei码、虚拟的iccid码、虚拟的mac地址、虚拟的硬件序列号和虚拟的设备id。
80.本实施例中,生成用户的虚拟设备信息的过程本质上是将用户的标识通过映射算法,例如哈希算法映射成预设格式的字符串。该映射过程得到的映射结果需满足第一预设条件和第二预设条件。第一预设条件包括:同一个用户的标识映射得到的虚拟设备信息是相同的。第二预设条件包括:不同的用户的标识映射得到的虚拟设备信息是不同的。
81.s206、目标容器将目标容器的设备信息更改为用户的虚拟设备信息。
82.具体的,针对在容器里具有承载位置的设备信息,例如android_id和mac地址,则可以将android_id更新为虚拟的android_id,和将mac地址更新为虚拟的mac地址。
83.示例性地,可以在容器的操作系统中运行settings put secure android_id$android_id从而实现android_id的更新。和在安卓shell中运行ifconfig eth0 hw ether$mac,实现mac地址的更新。
84.而针对在容器里没有承载位置的设备信息,比如imei码、sim卡序列号、手机号和硬件序列号,这些是在固件上的,而服务器没有这些固件。所以本实施例通过修改操作系统获取imei码、sim卡序列号、手机号和硬件序列号的api,使其不再查找固件的imei码,而是直接返回虚拟的imei码、sim卡序列号、手机号和硬件序列号。
85.s207、目标容器接收游戏服务器发送的针对容器的设备信息的获取请求。
86.s208、目标容器获取用户的虚拟设备信息,并返回至游戏服务器。
87.具体的,是在用户登录目标游戏的客户端之前,将目标容器的设备信息更新为用户的虚拟设备信息,并对目标容器获取容器的设备信息的程序代码进行修改,从而使得目标容器是获取上述生成的虚拟设备信息。
88.在一些示例中,当游戏服务器接收到游客登录请求后,向云服务器发送目标容器的设备信息的获取请求,云服务器接收到目标容器的设备信息的获取请求之后,获取更改后的目标容器的设备信息并返回至游戏服务器,游戏服务器接收到更改后的目标容器的设备信息之后,根据更改后的目标容器的设备信息对游客确定登录账户。
89.若游戏服务器获取到更改后的目标容器的设备信息,则将该用户在目标游戏中的行为数据与目标容器的设备信息进行绑定并存储。
90.具体的,可以将登录次数与目标容器的设备信息进行绑定并存储,以及将游戏过程中的游戏运行数据与目标容器的设备信息进行绑定并存储。
91.后续若需要基于用户的游戏数据进行统计分析,则可以直接从目标容器的设备信息这一维度确定不同的用户,如此,就可以解决现有技术中不同容器采用同一设备信息,无法区分登录用户的问题。
92.本实施例通过接收用户登录目标游戏的客户端之前,云服务器发送的用户的标识;根据用户的标识生成用户的虚拟设备信息,用户的虚拟设备信息用于表示用户的身份;将容器的设备信息更改为用户的虚拟设备信息;接收游戏服务器发送的针对容器的设备信息的获取请求;获取用户的虚拟设备信息,并返回至游戏服务器。由于容器的设备信息更改为用户的虚拟设备信息,因此,游戏服务器获取到的容器的设备信息能够唯一标识用户,保证同一个用户对应的虚拟设备信息为确定值,同时尽可能降低不同云游戏用户的设备信息冲突的概率。之后将更新的设备信息更新,使游戏服务器获取到的是云游戏用户的虚拟设备信息,而不是真实的设备信息,从而避免由于设备信息冲突导致的游戏登录串号,行为统计偏差等问题。
93.图4为本技术实施例提供的云游戏中设备信息获取的处理方法的交互示意图二。如图4所示,该云游戏中设备信息获取的处理方法,包括如下步骤:
94.s401、云服务器接收用户的终端设备发送的目标游戏的启动请求。
95.关于步骤s401的具体实施方式的介绍,可以参见步骤s201的介绍,此处不再赘述。
96.s402、云服务器对用户分配目标容器,目标容器为运行目标游戏的客户端的容器。
97.关于步骤s402的具体实施方式的介绍,可以参见步骤s202的介绍,此处不再赘述。
98.s403、云服务器获取预先存储的用户的虚拟设备信息并发送至目标容器,用户的虚拟设备信息用于表示用户的身份。
99.其中,在步骤s403之前,云服务器还执行如下方法步骤:
100.步骤a、获取用户的标识。
101.其中,云服务器获取的用户的标识是云服务器在用户注册云游戏平台时,对用户分配的标识。关于云服务器如何对用户分配标识,可以参见图2所示实施例的介绍。
102.步骤b、根据用户的标识生成用户的虚拟设备信息。
103.步骤c、存储用户的虚拟设备信息。
104.s404、目标容器接收云服务器发送的用户的虚拟设备信息,用户的虚拟设备信息是用户登录云游戏平台时,云服务器根据用户的标识生成的。
105.s405、目标容器将容器的设备信息更改为用户的虚拟设备信息。
106.步骤s405的具体实施方式的介绍,可以参见步骤s206的介绍,此处不再赘述。
107.s406、目标容器接收游戏服务器发送的针对容器的设备信息的获取请求。
108.s407、目标容器获取用户的虚拟设备信息,并返回至游戏服务器。
109.具体的,是在用户登录目标游戏的客户端之前,将目标容器的设备信息更新为用户的虚拟设备信息,并对目标容器获取容器的设备信息的程序代码进行修改,从而使得目标容器是获取上述生成的虚拟设备信息。
110.图4所示实施例与图2所示实施例的不同之处在于,图2所示实施例中用户的虚拟设备信息是由目标容器生成的,而图4所示实施例中用户的虚拟设备信息是由云服务器生成并发送至目标容器的。
111.而无论是云服务器还是目标容器生成用户的虚拟设备信息,其具体实现方式均相同。下面将详细介绍云服务器或目标容器如何根据用户的标识,生成用户的虚拟设备信息。
112.在第一种可选的实施方式中,虚拟国际移动设备识别码包括型号核准号码tac码、最后装配号fac码、串号snr码和校验和。示例性地,虚拟国际移动设备识别码是第一预设位
数的数字,例如15位的数字。其中,第1~6位的数字为tac码,第7~8位的数字为fac码,第9~14位的数字为snr码,第15位数字为校验和。
113.当虚拟设备信息包括虚拟国际移动设备识别码时,根据哈希算法对用户标识进行处理,得到用户的虚拟设备信息,具体包括:
114.a1、将用户的标识确定为伪随机数生成器的种子。
115.a2、根据伪随机数生成器的种子,生成第一伪随机数。
116.a3、根据第一伪随机数生成型号核准号码tac码。
117.其中,tac码=860000+rand(10000)。
118.rand(10000)的含义是生成0~9999之间的随机数(第一伪随机数),种子是用户的标识。
119.a4、生成第二伪随机数,并将第二伪随机数确定为最后装配号fac码。
120.其中,fac码=rand(100)。
121.a5、生成第三伪随机数,并将第三伪随机数确定为串号snr码。
122.其中,snr码=rand(1000000),不足6位数的前面补0。
123.a6、根据luhn算法对所述型号核准号码tac码、最后装配号fac码、串号snr码进行计算,生成校验和。
124.示例性地,可以根据luhn算法对第1~14位的数字进行计算,生成校验和,该校验和作为虚拟的imei码的第15位数字。
125.a7、将tac码、fac码、snr码和校验和进行组合,得到虚拟国际移动设备识别码。
126.图5为本技术实施例提供的imei码的组合过程的示意图。如图5所示,将tac,fac,snr,cd(校验和)作为字符串连接起来得到15位数的imei码。
127.进一步地,伪随机数生成器针对不同用户生成的imei码可能存在相同的情况,针对这种情况,可以采用开放寻址法对不同用户的imei码进行处理,直至不同用户的imei码不同。
128.在第二种可选的实施方式中,虚拟设备信息包括虚拟设备唯一码(android_id),则根据哈希算法对所述用户标识进行处理,得到所述用户的所述虚拟设备信息,包括:
129.b1、将用户标识确定为伪随机数生成器的种子。
130.b2、根据伪随机数生成器的种子,生成第四伪随机数,第四伪随机数是位数为第二预设位数的伪随机数。
131.示例性地,第二预设位数可以是64位。则可以采用如下方式获取第四伪随机数:n64=rand()。
132.b3、将第四伪随机数对应的十六进制字符串确定为虚拟设备唯一码。
133.具体的,是将第四伪随机数转换为十六进制的字符串,并将对该第四伪随机数进行十六进制的转换得到的十六进制的字符串,确定为虚拟设备唯一码。
134.进一步地,伪随机数生成器针对不同用户生成的虚拟设备唯一码可能存在相同的情况,针对这种情况,可以采用开放寻址法对不同用户的虚拟设备唯一码进行处理,直至不同用户的虚拟设备唯一码不同。
135.在第三种可选的实施方式中,虚拟设备信息包括虚拟网卡硬件地址,则根据哈希算法对用户标识进行处理,得到用户的虚拟设备信息,包括:
136.c1、将用户标识确定为伪随机数生成器的种子。
137.c2、根据伪随机数生成器的种子生成第五伪随机数,第五伪随机数是位数为48位的伪随机数,第五伪随机数的首字节的后两位均为0。
138.具体的,获取第五伪随机数,可以采用如下公式:n48=rand()&0xfcffffffffff,其中,&表示按位进行与操作。
139.c3、根据第五伪随机数生成虚拟网卡硬件地址。
140.具体的,根据第五伪随机数生成虚拟网卡硬件地址,包括:
141.c31、将n48转为6个字节;
142.示例性地,6个字节分别表示为h1、h2、h3、h4、h5和h6;
143.h1=0xff0000000000&n48
144.h2=0x00ff00000000&n48
145.h3=0x0000ff000000&n48
146.h4=0x000000ff0000&n48
147.h5=0x00000000ff00&n48
148.h6=0x0000000000ff&n48
149.c32、将c31中得到的h1、h2、h3、h4、h5和h6转换为格式为xx:xx:xx:xx:xx:xx的16进制字符串,作为虚拟网卡硬件地址(虚拟mac地址)。即:虚拟mac地址=“hex(h1):hex(h2):hex(h3):hex(h4):hex(h5):hex(h6)”。
150.进一步地,伪随机数生成器针对不同用户生成的虚拟mac地址可能存在相同的情况,针对这种情况,可以采用开放寻址法对不同用户的虚拟mac地址进行处理,直至不同用户的虚拟mac地址不同。
151.在第四种可选的实施方式中,虚拟设备信息包括虚拟硬件序列号(build_serial),则根据哈希算法对用户标识进行处理,得到用户的虚拟设备信息,包括:
152.d1、对用户标识进行字符串的转换,得到用户字符串。
153.d2、对用户字符串进行编码,得到虚拟硬件序列号。
154.具体的,虚拟硬件序列号=base64(itoa(uid+100000000))。
155.其中,uid表示用户的标识,itoa表示将数字转换成对应的字符串,base64表示对字符串进行base64编码。
156.在第五种可选的实施方式中,虚拟设备信息包括虚拟用户身份识别卡序列号(sim_iccid)。则根据哈希算法对用户标识进行处理,得到用户的虚拟设备信息,包括:
157.e1、将用户的标识确定为伪随机数生成器的种子。
158.e2、根据伪随机数生成器的种子生成第六伪随机数,第六伪随机数用于表示虚拟的国际编号、虚拟的国家编号和虚拟的运营商编号。
159.在一个可选的示例中,第六伪随机数为sim_iccid的第1~6位数字,则前6位数字=898000+rand(5)。
160.e3、分别生成第七伪随机数、第八伪随机数、第九伪随机数、第十伪随机数、第十一伪随机数、第十二伪随机数。
161.其中,第七伪随机数是sim_iccid的第7位数字,第七伪随机数=rand(10)。
162.第八伪随机数是sim_iccid的第8位数字,第八伪随机数=rand(10)、
ether$mac,其中,$mac为虚拟的mac地址,eth0为网卡接口名。
182.由于部分设备信息无法直接更新,因而需要对获取设备信息的代码进行修改,从而返回虚拟设备信息。
183.在一些示例中,可以将获取imei码的代码逻辑修改为使android.telephony.telephonymanager中的getdeviceid()方法和getimei()方法直接返回虚拟的imei。
184.在一些示例中,可以将获取sim卡序列号的代码修改为使android.telephony.telephonymanager中的getsimserialnumber()方法直接返回新生成的sim_accid。
185.在一些示例中,可以将获取手机号的代码修改为使android.telephony.telephonymanager中的getline1number()方法直接返回新生成的虚拟移动号码。
186.在一些示例中,可以将获取硬件序列号的代码修改为使c运行时库的system_properties的实现方法,当获取ro.serialno属性时直接返回新生成的build_serial。
187.在上述方法实施例的基础上,图6为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图一。如图6所示,该装置应用于云服务器中部署的容器,所述容器中运行有目标游戏的客户端,该装置包括:接收模块61、生成模块62、更改模块63和获取模块64;
188.其中,接收模块61,用于接收所述用户登录所述目标游戏的客户端之前,云服务器发送的所述用户的标识;
189.生成模块62,用于根据所述用户的标识生成所述用户的虚拟设备信息,所述用户的虚拟设备信息用于表示所述用户的身份;
190.更改模块63,用于将所述容器的设备信息更改为所述用户的虚拟设备信息;
191.接收模块61,还用于接收游戏服务器发送的针对容器的设备信息的获取请求;
192.获取模块64,用于获取所述用户的虚拟设备信息,并返回至所述游戏服务器。
193.在一些可选的实施例中,所述生成模块62根据所述用户的标识生成所述用户的虚拟设备信息,具体包括:根据哈希算法对所述用户标识进行处理,得到所述用户的虚拟设备信息。
194.在一些可选的实施例中,所述虚拟设备信息包括虚拟国际移动设备识别码,所述虚拟国际移动设备识别码包括型号核准号码tac码、最后装配号fac码、串号snr码和校验和;所述生成模块62根据哈希算法对所述用户标识进行处理,得到所述用户的所述虚拟设备信息,包括:将所述用户标识确定为伪随机数生成器的种子;根据所述伪随机数生成器的种子,生成第一伪随机数;根据所述第一伪随机数生成型号核准号码tac码;生成第二伪随机数,并将所述第二伪随机数确定为最后装配号fac码;生成第三伪随机数,并将所述第三伪随机数确定为串号snr码;根据luhn算法对所述型号核准号码tac码、最后装配号fac码、串号snr码进行计算,生成校验和;将所述tac码、所述fac码、所述snr码和所述校验和进行组合,得到所述虚拟国际移动设备识别码。
195.在一些可选的实施例中,所述虚拟设备信息包括虚拟设备唯一码,则所述生成模块62根据哈希算法对所述用户标识进行处理,得到所述用户的所述虚拟设备信息,包括:将所述用户标识确定为伪随机数生成器的种子;根据所述伪随机数生成器的种子,生成第四伪随机数,所述第四伪随机数是位数为64位的伪随机数;将所述第四伪随机数对应的十六进制字符串确定为所述虚拟设备唯一码。
196.在一些可选的实施例中,所述虚拟设备信息包括虚拟网卡硬件地址,则所述生成模块62根据哈希算法对所述用户标识进行处理,得到所述用户的所述虚拟设备信息,包括:将所述用户标识确定为伪随机数生成器的种子;根据所述伪随机数生成器的种子,生成第五伪随机数,所述第五伪随机数是位数为48位的伪随机数,所述第五伪随机数的首字节的后两位均为0;根据所述第五伪随机数生成所述虚拟网卡硬件地址。
197.在一些可选的实施例中,所述虚拟设备信息包括虚拟硬件序列号,则所述生成模块62根据哈希算法对所述用户标识进行处理,得到所述用户的所述虚拟设备信息,包括:对所述用户标识进行字符串的转换,得到用户字符串;对所述用户字符串进行编码,得到所述虚拟硬件序列号。
198.在一些可选的实施例中,所述虚拟设备信息包括虚拟用户身份识别卡序列号,则所述生成模块62根据哈希算法对所述用户标识进行处理,得到所述用户的所述虚拟设备信息,包括:将所述用户标识确定为伪随机数生成器的种子;根据所述伪随机数生成器的种子,生成第六伪随机数,第六伪随机数用于表示虚拟的国际编号、虚拟的国家编号和虚拟的运营商编号;分别生成第七伪随机数、第八伪随机数、第九伪随机数、第十伪随机数、第十一伪随机数、第十二伪随机数;将所述第七伪随机数、所述第八伪随机数、所述第九伪随机数、所述第十伪随机数、所述第十一伪随机数、所述第十二伪随机数进行组合,得到待校验数字,待校验数字用于表示虚拟用户身份识别卡序列号中除校验和之外的其他数字;根据luhn算法对所述待校验数字进行计算,生成校验和;将所述待校验数字和所述校验和进行组合,得到所述虚拟用户身份识别卡序列号。
199.在一些可选的实施例中,所述虚拟设备信息包括虚拟移动号码,则所述生成模块62根据所述用户的标识生成所述用户的所述虚拟设备信息,包括:获取所述用户对云游戏的注册信息,所述注册信息包括所述用户的移动用户号码;将所述用户的移动用户号码,确定为所述用户的虚拟移动号码。
200.本技术实施例提供的云游戏中设备信息获取的处理装置,可用于执行上述实施例中云游戏中设备信息获取的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
201.在上述方法实施例的基础上,图7为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图二。如图7所示,该装置应用于云服务器,该装置包括:接收模块71、分配模块72和获取模块73;
202.其中,接收模块71,用于接收用户的终端设备发送的目标游戏的启动请求;
203.分配模块72,用于对所述用户分配目标容器,所述目标容器为运行所述目标游戏的客户端的容器;
204.获取模块73,用于获取预先存储的所述用户的标识并发送至目标容器。
205.本技术实施例提供的云游戏中设备信息获取的处理装置,可用于执行上述实施例中云游戏中设备信息获取的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
206.在上述方法实施例的基础上,图8为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图三。如图8所示,该装置应用于云服务器中部署的容器,所述容器中运行有目标游戏的客户端,该装置包括:接收模块81、更改模块82和获取模块83;
207.接收模块81,用于接收云服务器发送的所述用户的虚拟设备信息,所述用户的虚拟设备信息是所述用户登录云游戏平台时,所述云服务器根据所述用户的标识生成的;
208.更改模块82,用于将所述容器的设备信息更改为所述用户的虚拟设备信息;
209.接收模块81,还用于接收游戏服务器发送的针对容器的设备信息的获取请求;
210.获取模块83,用于获取所述用户的虚拟设备信息,并返回至所述游戏服务器。
211.本技术实施例提供的云游戏中设备信息获取的处理装置,可用于执行上述实施例中云游戏中设备信息获取的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
212.在上述方法实施例的基础上,图9为本技术实施例提供的云游戏中设备信息获取的处理装置的结构示意图四。如图9所示,该装置应用于云服务器,所述装置包括:接收模块91、分配模块92、获取模块93;
213.其中,接收模块91,用于接收用户的终端设备发送的目标游戏的启动请求;
214.分配模块92,用于对所述用户分配目标容器,所述目标容器为运行目标游戏的客户端的容器;
215.获取模块93,用于获取预先存储的所述用户的虚拟设备信息并发送至所述目标容器,所述用户的虚拟设备信息用于表示所述用户的身份。
216.在一些可选的实施例中,该装置还包括:生成模块94和存储模块95;
217.其中,获取模块93,还用于获取所述用户的标识;
218.生成模块94,用于根据所述用户的标识生成所述用户的虚拟设备信息;
219.存储模块95,用于存储所述用户的虚拟设备信息。
220.本技术实施例提供的云游戏中设备信息获取的处理装置,可用于执行上述实施例中云游戏中设备信息获取的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
221.需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,生成模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上生成模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
222.图10为本技术实施例提供的电子设备的结构示意图。如图10所示,该计算机设备可以包括:收发器1001、处理器1002、存储器1003。
223.处理器1002执行存储器存储的计算机执行指令,使得处理器1002执行上述实施例中的方案。处理器1002可以是通用处理器,包括中央处理器cpu、网络处理器(network processor,np)等;还可以是数字信号处理器dsp、专用集成电路asic、现场可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
224.存储器1003通过系统总线与处理器1002连接并完成相互间的通信,存储器1003用于存储计算机程序指令。
225.收发器1001可以用于接收用户的标识。
226.系统总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(random access memory,ram),也可能还包括非易失性存储器(non-volatile memory)。
227.本技术实施例提供的电子设备,可用于执行上述实施例中云游戏中设备信息获取的处理方法的技术方案,其实现原理和技术效果类似,在此不再赘述。
228.本技术实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中云游戏中设备信息获取的处理方法的技术方案。
229.本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行上述实施例云游戏中设备信息获取的处理方法的技术方案。
230.本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,其存储在计算机可读存储介质中,至少一个处理器可以从计算机可读存储介质读取计算机程序,至少一个处理器执行计算机程序时可实现上述实施例中云游戏中设备信息获取的处理方法的技术方案。
231.本技术实施例中的云游戏中设备信息获取的处理方法可以运行于终端设备或者是云交互系统。
232.其中,云交互系统包括云服务器和用户设备,用于运行云应用。云应用分别运行。
233.在一可选的实施方式中,云游戏是指以云计算为基础的游戏方式。在云游戏的运行模式下,游戏程序的运行主体和游戏画面呈现主体是分离的,对象选择方法的储存与运行是在云游戏服务器上完成的,云游戏客户端的作用用于数据的接收、发送以及游戏画面的呈现,举例而言,云游戏客户端可以是靠近用户侧的具有数据传输功能的显示设备,如,移动终端、电视机、计算机、掌上电脑等;但是进行游戏数据处理的终端设备为云端的云游戏服务器。在进行游戏时,用户操作云游戏客户端向云游戏服务器发送操作指令,云游戏服务器根据操作指令运行游戏,将游戏画面等数据进行编码压缩,通过网络返回云游戏客户端,最后,通过云游戏客户端进行解码并输出游戏画面。
234.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
235.应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。