一.直接上上代码
import string
import base64
import uuid
import json
import random
import math
class Mask(object):
"""
生成设备指纹
"""
@staticmethod
def mac():
"""
MAC 地址随机
:return: MAC地址
"""
mac_list = []
for num in range(1, 7):
random_key = "".join(random.sample("0123456789abcdef", 2))
mac_list.append(random_key)
random_mac = ":".join(mac_list)
return random_mac
@staticmethod
def get_black():
session_id = "smyfinancial" + str(uuid.uuid4()).replace("-", "")[:32],
version = "2.0.2",
system = "Android",
device_id = "sNy93rXqiOef" + base64.b64encode(
str(uuid.uuid4()).replace("-", "")[:32].encode()).decode().replace(
"
", "").replace("", ""),
device_json = {"os": system, "version": version, "session_id": session_id,
"device_id": device_id}
black_box = base64.b64encode(json.dumps(device_json, separators=(",", ":")).encode()).decode()
return black_box
@staticmethod
def imei(tac=None):
"""
中国区 imei 随机
:return: IMEI值
"""
if tac is None or len(tac) != 8:
tac = "86" + "".join(random.choice(string.digits) for i in range(6))
snr = "".join(random.choice(string.digits) for i in range(6))
imei = tac + snr
imei_list = []
for num in range(len(imei)):
if num % 2 == 0:
imei_list.append(int(imei[num]))
else:
pass
imei_list.append((int(imei[num]) * 2 % 10 + int(imei[num]) * 2 // 10))
imei_sum = sum(imei_list)
if imei_sum % 10 == 0:
sp = "0"
else:
sp = str(10 - (imei_sum % 10))
return imei + sp
def info(self):
"""
生成 android 设备信息
"""
smartid = random.choice(["1080x1920", "1776x1080", "720x1280", "640x1136", "1080x2040"])
mobile = random.choice(
["Nexus 5", "Nexus 6", "Nexus 6p", "Nexus 7", "Nexus 10", "Xiaomi", "HUAWEI", "HTC 802t", "HTC M8St",
"vivo X7", "vivo X9",
"vivo X9i", "vivo X9L", "OPPO A57", "vivo Y66", "Galaxy A3"])
version = random.choice(["5.1.1", "5.1", "6.0.1", "6.0", "7.1.2", "8.0", "9.0", "7.0.1", "7.0"])
unique_d = str(uuid.uuid4()).replace("-", "")[:15]
return {"smartid": smartid, "version": version, "mobile": mobile, "uniqueId": unique_d, "mac": self.mac(),
"black_box": self.get_black(), "imei": self.imei()}
# 这里的参数包括一个基准点,和一个距离基准点的距离
def generate_random_gps(base_log=None, base_lat=None, radius=None):
radius_in_degrees = radius / 111300
u = float(random.uniform(0.0, 1.0))
v = float(random.uniform(0.0, 1.0))
w = radius_in_degrees * math.sqrt(u)
t = 2 * math.pi * v
x = w * math.cos(t)
y = w * math.sin(t)
longitude = y + base_log
latitude = x + base_lat
# 这里是想保留6位小数点
loga = "%.6f" % longitude
lata = "%.6f" % latitude
return loga, lata
#
# log1, lat1 = generate_random_gps(base_log=120.7, base_lat=30, radius=1000000)
# print(log1, lat1)
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 »
python爬虫随机设备信息生成模板