Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tkio-test-case
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liuxiaoxing
tkio-test-case
Commits
c5c8f3aa
Commit
c5c8f3aa
authored
Mar 14, 2022
by
liuxiaoxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微服务测试用例
parent
cf614b4d
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1295 additions
and
498 deletions
+1295
-498
click.py
android_click/click.py
+4
-4
android_script.py
android_event/android_script.py
+2
-2
android_fenlianjie.py
android_event_case/android_fenlianjie.py
+6
-6
click.py
ios_click/click.py
+13
-11
ios_script.py
ios_event/ios_script.py
+45
-45
ios_fenlianjie.py
ios_event_case/ios_fenlianjie.py
+3
-3
attributioncase.py
microservices/attributioncase.py
+938
-1
attributioncaseios.py
microservices/attributioncaseios.py
+224
-0
receiveios.py
microservices/receiveios.py
+6
-4
redirectandroid.py
microservices/redirectandroid.py
+29
-15
redirectios.py
microservices/redirectios.py
+20
-6
x_launch.py
xiaochengxu/x_launch.py
+3
-3
冰墩墩.py
xiaochengxu/冰墩墩.py
+1
-395
dp.py
yanchidp/dp.py
+1
-1
dp_diaoyong.py
yanchidp/dp_diaoyong.py
+0
-2
No files found.
android_click/click.py
View file @
c5c8f3aa
...
@@ -26,7 +26,7 @@ ry_adplan_name = '新版测试-计划'
...
@@ -26,7 +26,7 @@ ry_adplan_name = '新版测试-计划'
ry_adcreative_name
=
'新版测试创意'
ry_adcreative_name
=
'新版测试创意'
# bytedance_int 今日头条,kuaishou_int 快手,tencentams_int (新)广点通,rryingxiao_int 人人营销
# bytedance_int 今日头条,kuaishou_int 快手,tencentams_int (新)广点通,rryingxiao_int 人人营销
pid
=
'rryingxiao_int'
pid
=
'rryingxiao_int'
URL
=
'http://
10.2.20.42:8083/tkio/MrYbua
a?noredirect=true'
URL
=
'http://
uri6.com/tkio/2MRFZr
a?noredirect=true'
# 测试头条衍生事件回调时加上
# 测试头条衍生事件回调时加上
# callback= http%3A%2F%2Fad.toutiao.com%2Ftrack%2Factivate%2F%3Fcallback%3DCKP4rs-Zn4QDEKiQ6teZn4QDGN6L8Y-h9Wcg3ovxj6H1ZyiE0PjgroSEAzAOOM_X-8IDQik0YWY1NzdlOC1lZmViLTRmZDEtYmZkZC00MzE1Zjc1MmJhMGF1NTQ5M0iA0pOtA1AAiAEAkAECmAEA%26os%3D0%26muid%3D
# callback= http%3A%2F%2Fad.toutiao.com%2Ftrack%2Factivate%2F%3Fcallback%3DCKP4rs-Zn4QDEKiQ6teZn4QDGN6L8Y-h9Wcg3ovxj6H1ZyiE0PjgroSEAzAOOM_X-8IDQik0YWY1NzdlOC1lZmViLTRmZDEtYmZkZC00MzE1Zjc1MmJhMGF1NTQ5M0iA0pOtA1AAiAEAkAECmAEA%26os%3D0%26muid%3D
# URL = 'http://uri6.com/adapt/encryp/love.match.set-bytedance?noredirect=true&pid=rryingxiao_int&callback=D8311DBF28D751F327B83F7CEE5B8850B88CC74C8C3FF628EB3A48CAE2212EE260EE347E1771382C5F1B2C0FC9E8921CB5245576D7E5C1EF680315AAA98DCFB189F66FBA49CC7BCB8E4B4726D6D363B816BB2133CADC80B1C12D9FE464A05ED974A70A646BAB1D4D78E2A75361676D5A0D3D4E52B7E7C6B72E9388C17FE9384BE1A47503AABEFB9423727DBAC7B7275AAD237E0E2774D2A8C3D0FDC895CE10C0CCE38F8FEDBC24AF2E23B2B5E742B50C07744361334E148979087917DFFFC445A74B9F939412DEF8D060474E1D353ED7E2EB636B32CADF29842BB90E2131BD3ED05D1A0438EA0EA8577613780B3D64377D85E758A2B20507A034A2C8A96077C7E200C410188C78F76B9B5E7F3E5E4AC3'
# URL = 'http://uri6.com/adapt/encryp/love.match.set-bytedance?noredirect=true&pid=rryingxiao_int&callback=D8311DBF28D751F327B83F7CEE5B8850B88CC74C8C3FF628EB3A48CAE2212EE260EE347E1771382C5F1B2C0FC9E8921CB5245576D7E5C1EF680315AAA98DCFB189F66FBA49CC7BCB8E4B4726D6D363B816BB2133CADC80B1C12D9FE464A05ED974A70A646BAB1D4D78E2A75361676D5A0D3D4E52B7E7C6B72E9388C17FE9384BE1A47503AABEFB9423727DBAC7B7275AAD237E0E2774D2A8C3D0FDC895CE10C0CCE38F8FEDBC24AF2E23B2B5E742B50C07744361334E148979087917DFFFC445A74B9F939412DEF8D060474E1D353ED7E2EB636B32CADF29842BB90E2131BD3ED05D1A0438EA0EA8577613780B3D64377D85E758A2B20507A034A2C8A96077C7E200C410188C78F76B9B5E7F3E5E4AC3'
...
@@ -39,7 +39,7 @@ URL = 'http://10.2.20.42:8083/tkio/MrYbuaa?noredirect=true'
...
@@ -39,7 +39,7 @@ URL = 'http://10.2.20.42:8083/tkio/MrYbuaa?noredirect=true'
# 7e3aa681f68435b3f74de790d6424690
# 7e3aa681f68435b3f74de790d6424690
# 4eab4be709defbfc2cc85826b09caea0
# 4eab4be709defbfc2cc85826b09caea0
# 6ba2b016f280004d10a1a354e426eceb
# 6ba2b016f280004d10a1a354e426eceb
appkey
=
'
bf3b409800af7328042de440f2fb7917
'
appkey
=
'
16dc0cb882d3dbec4f7f66251a84d6dd
'
lst
=
[]
lst
=
[]
nowTime
=
datetime
.
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
)
nowTime
=
datetime
.
datetime
.
now
()
.
strftime
(
'
%
Y-
%
m-
%
d
%
H:
%
M:
%
S'
)
s
=
0
s
=
0
...
@@ -80,14 +80,14 @@ for index in range(1):
...
@@ -80,14 +80,14 @@ for index in range(1):
# ip = '156.119.456.199'
# ip = '156.119.456.199'
try
:
try
:
parms
=
{
parms
=
{
# 'androidid': '',
# 'androidid': '
86a069b7f6642bdde717709216e68d0b
',
'imei'
:
i
,
'imei'
:
i
,
# 'campuuid': '@#¥%……&……%¥#@#¥%&……&*****',
# 'campuuid': '@#¥%……&……%¥#@#¥%&……&*****',
# 'clickid': '测试测试',
# 'clickid': '测试测试',
# "idfa": '00000000-0000-0000-0000-000000000000',
# "idfa": '00000000-0000-0000-0000-000000000000',
# 'gxid': '78B5382F687FAD16E75F5DDDC7745013',
# 'gxid': '78B5382F687FAD16E75F5DDDC7745013',
# 'caid': '00_A0FF634AEDF1403205A4A6A1118CDA61_A66338F33BEBB40F5CD65F198AF2F40C',
# 'caid': '00_A0FF634AEDF1403205A4A6A1118CDA61_A66338F33BEBB40F5CD65F198AF2F40C',
# 'oaid': '
',
'oaid'
:
'697134960e9ff8df46f21b4f97db595a
'
,
# 'oaid_MD5': '9f89c84a559f573636a47ff8daed0d33',
# 'oaid_MD5': '9f89c84a559f573636a47ff8daed0d33',
'ip'
:
ip
,
'ip'
:
ip
,
# 'pid': pid,
# 'pid': pid,
...
...
android_event/android_script.py
View file @
c5c8f3aa
...
@@ -79,13 +79,13 @@ class allEvent:
...
@@ -79,13 +79,13 @@ class allEvent:
# "_campaignid": 'default',
# "_campaignid": 'default',
"_deviceid"
:
i
,
"_deviceid"
:
i
,
"_imei"
:
i
,
"_imei"
:
i
,
# '_oaid': '875643256870978657463524
',
'_oaid'
:
'4532432432r3r3455r34rt5
'
,
# 'ua': 'Mozilla/5.0 (Linux; U; Android 7.0; zh-CN; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.4.5.937 Mobile Safari/537.36',
# 'ua': 'Mozilla/5.0 (Linux; U; Android 7.0; zh-CN; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/40.0.2214.89 UCBrowser/11.4.5.937 Mobile Safari/537.36',
# "idfa": i,
# "idfa": i,
# "_current_caid": "00_A0FF634AEDF1403205A4A6A1118CDA61_A66338F33BEBB40F5CD65F198AF2F40C",
# "_current_caid": "00_A0FF634AEDF1403205A4A6A1118CDA61_A66338F33BEBB40F5CD65F198AF2F40C",
# "gxid": "876543567543565",
# "gxid": "876543567543565",
# "_idfv": i,
# "_idfv": i,
# "_androidid": i
,
"_androidid"
:
'dewry3487ryd3478r34r'
,
# "_imei2":"324323AAAA",
# "_imei2":"324323AAAA",
# "_meid": "CCC324323",
# "_meid": "CCC324323",
"_ip"
:
IP
,
"_ip"
:
IP
,
...
...
android_event_case/android_fenlianjie.py
View file @
c5c8f3aa
...
@@ -8,7 +8,7 @@ import hashlib
...
@@ -8,7 +8,7 @@ import hashlib
#安卓常规渠道激活
#安卓常规渠道激活
appkey
=
'
bf3b409800af7328042de440f2fb7917
'
appkey
=
'
16dc0cb882d3dbec4f7f66251a84d6dd
'
# 线上预约app
# 线上预约app
# 7f64fbd64513bc74aa6b5bf753ae0953
# 7f64fbd64513bc74aa6b5bf753ae0953
# 16dc0cb882d3dbec4f7f66251a84d6dd
# 16dc0cb882d3dbec4f7f66251a84d6dd
...
@@ -37,8 +37,8 @@ for index in range(1):
...
@@ -37,8 +37,8 @@ for index in range(1):
# p = '987654321234567'
# p = '987654321234567'
# s = '2321321312h8ro321'
# s = '2321321312h8ro321'
#
i = ''.join(str(random.choice(range(10))) for _ in range(12))
i
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
i
=
'213416723004
'
# i = '76532423423422
'
# i = '00000000-0000-0000-0000-000000000000'
# i = '00000000-0000-0000-0000-000000000000'
# 随机生成ipXXXX XXCB489741-0029-4A35-8E38-D142F836B623
# 随机生成ipXXXX XXCB489741-0029-4A35-8E38-D142F836B623
ip
=
socket
.
inet_ntoa
(
struct
.
pack
(
'>I'
,
random
.
randint
(
1
,
0xffffffff
)))
ip
=
socket
.
inet_ntoa
(
struct
.
pack
(
'>I'
,
random
.
randint
(
1
,
0xffffffff
)))
...
@@ -47,7 +47,7 @@ for index in range(1):
...
@@ -47,7 +47,7 @@ for index in range(1):
# 60.13.148.23 新疆维吾尔自治区吐鲁番市
# 60.13.148.23 新疆维吾尔自治区吐鲁番市
# 61.139.239.255 广西壮族自治区北海市
# 61.139.239.255 广西壮族自治区北海市
# 119.60.0.0 宁夏回族自治区银川市
# 119.60.0.0 宁夏回族自治区银川市
#
allEvent().installUpload(i, ip, appkey)
allEvent
()
.
installUpload
(
i
,
ip
,
appkey
)
# time.sleep(1)
# time.sleep(1)
# allEvent().startupEvent(i, ip, appkey)
# allEvent().startupEvent(i, ip, appkey)
# time.sleep(1)
# time.sleep(1)
...
@@ -60,8 +60,8 @@ for index in range(1):
...
@@ -60,8 +60,8 @@ for index in range(1):
# time.sleep(1)
# time.sleep(1)
# num = index + 1
# num = index + 1
# event = 'event_' + str(num)
# event = 'event_' + str(num)
event
=
'event_20'
#
event = 'event_20'
allEvent
()
.
ziding_event
(
i
,
ip
,
appkey
,
event
)
#
allEvent().ziding_event(i, ip, appkey, event)
# print(s)
# print(s)
# s = int(s) + 1
# s = int(s) + 1
# time.sleep(3)
# time.sleep(3)
...
...
ios_click/click.py
View file @
c5c8f3aa
...
@@ -8,8 +8,8 @@ import string
...
@@ -8,8 +8,8 @@ import string
#向短链发送点击数据
#向短链发送点击数据
#渠道短链
#渠道短链
URL
=
'http://uri6.com/tkio/
zy2aEb
a?noredirect=true'
URL
=
'http://uri6.com/tkio/
2MRFZr
a?noredirect=true'
appkey
=
'
0d401839250deff23daf62fd49a444cb
'
appkey
=
'
cd9a88d26f715c3a0503dd9a1476cccd
'
# URL = 'http://172.31.19.255:8083/tkio/VNNjQra'
# URL = 'http://172.31.19.255:8083/tkio/VNNjQra'
event
=
'event_1'
event
=
'event_1'
# 广告创意ID
# 广告创意ID
...
@@ -38,9 +38,11 @@ for _ in range(1):
...
@@ -38,9 +38,11 @@ for _ in range(1):
d
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
d
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
e
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
12
))
e
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
12
))
i
=
(
a
+
"-"
+
b
+
"-"
+
c
+
"-"
+
d
+
"-"
+
e
)
.
upper
()
#
i = (a+"-"+b+"-"+c+"-"+d+"-"+e).upper()
# i = '00000000-0000-0000-0000-000000000000'
# i = '00000000-0000-0000-0000-000000000000'
i
=
'8a517deb7c54ac34e4a3e21f84ab6aae84d7696e'
# i = 'IFV_05B50501-E0FC-4B83-BE74-F18ACEDEF37Bwew'
# i = 'IFV_05B50501-E0FC-4B83-BE74-F18ACEDEF37Bwew'
adid
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
adid
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
p1
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
p1
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
se
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
se
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
...
@@ -87,14 +89,14 @@ for _ in range(1):
...
@@ -87,14 +89,14 @@ for _ in range(1):
print
(
'idfa:'
,
i
)
print
(
'idfa:'
,
i
)
print
(
'ip'
,
ip
)
print
(
'ip'
,
ip
)
w
=
w
+
1
w
=
w
+
1
time
.
sleep
(
10
)
#
time.sleep(10)
try
:
#
try:
allEvent
()
.
installUpload
(
i
,
ip
,
appkey
)
#
allEvent().installUpload(i, ip, appkey)
# allEvent().formevent(i, ip, appkey)
#
# allEvent().formevent(i, ip, appkey)
#
except
Exception
:
#
except Exception:
print
(
'install_wrong:'
,
w
)
#
print('install_wrong:', w)
w
=
w
+
1
#
w = w + 1
# time.sleep(3)
# time.sleep(3)
# try:
# try:
# allEvent().adshow(i, ip, appkey,adid)
# allEvent().adshow(i, ip, appkey,adid)
...
...
ios_event/ios_script.py
View file @
c5c8f3aa
...
@@ -91,51 +91,51 @@ class allEvent:
...
@@ -91,51 +91,51 @@ class allEvent:
# 3.download + deviceId有归因结果asa_install_type = old_download对应1
# 3.download + deviceId有归因结果asa_install_type = old_download对应1
# 4.download + deviceId无归因结果asa_install_type = new_download对应2
# 4.download + deviceId无归因结果asa_install_type = new_download对应2
# # 转化类型,新增或重装,Download 或 Redownload
# # 转化类型,新增或重装,Download 或 Redownload
"iad-conversion-type"
:
"Download"
,
#
"iad-conversion-type": "Download",
#
# 广告活动组ID(campaign group id)
#
#
广告活动组ID(campaign group id)
"iad-org-id"
:
"111111
"
,
# "iad-org-id": "432432432
",
# 广告活动组名称(campaign group name)
#
#
广告活动组名称(campaign group name)
"iad-org-name"
:
"name"
,
#
"iad-org-name": "name",
#
# 广告活动ID
#
#
广告活动ID
"iad-campaign-id"
:
"111"
,
#
"iad-campaign-id": "111",
# 广告活动名称
#
#
广告活动名称
"iad-campaign-name"
:
"CampaignName"
,
#
"iad-campaign-name": "CampaignName",
#
#
# 广告组ID
#
#
广告组ID
"iad-adgroup-id"
:
"111111"
,
#
"iad-adgroup-id": "111111",
# 广告组名称
#
#
广告组名称
"iad-adgroup-name"
:
"AdGroupName"
,
#
"iad-adgroup-name": "AdGroupName",
#
#
# 关键词 id
#
#
关键词 id
"iad-keyword-id"
:
"111"
,
#
"iad-keyword-id": "111",
# 关键词
#
#
关键词
"iad-keyword"
:
"Keyword"
,
#
"iad-keyword": "Keyword",
#
#
# 素材ID
#
#
素材ID
"iad-creativeset-id"
:
"111"
,
#
"iad-creativeset-id": "111",
# 素材名称
#
#
素材名称
"iad-creativeset-name"
:
"CreativeSetName"
,
#
"iad-creativeset-name": "CreativeSetName",
#
# 点击ASA广告时间
#
#
点击ASA广告时间
"iad-click-date"
:
'2021-06-24T11:32:33Z'
,
#
"iad-click-date": '2021-06-24T11:32:33Z',
# 本次下载完成的时间(仅ASA转化时,该值传且必传)
#
#
本次下载完成的时间(仅ASA转化时,该值传且必传)
"iad-conversion-date"
:
when
,
#
"iad-conversion-date": when,
#
# Broad 广泛匹配 ; Exact 完全匹配;SearchMatch 搜索匹配
#
#
Broad 广泛匹配 ; Exact 完全匹配;SearchMatch 搜索匹配
# 关键词匹配类型
#
#
关键词匹配类型
"iad-keyword-matchtype"
:
"SearchMatch"
,
#
"iad-keyword-matchtype": "SearchMatch",
#首次下载完成的时间(有可能包括非ASA转化,当为redownload且conversion date有值时,purchase date是第一次下载App的时间)
#
#
首次下载完成的时间(有可能包括非ASA转化,当为redownload且conversion date有值时,purchase date是第一次下载App的时间)
"iad-purchase-date"
:
'2021-06-24T11:32:33Z'
,
#
"iad-purchase-date": '2021-06-24T11:32:33Z',
# 归因结果
#
#
归因结果
"iad-attribution"
:
"true"
,
#
"iad-attribution": "true",
# 国家
#
#
国家
"iad-country-or-region"
:
"US"
,
#
"iad-country-or-region": "US",
'asa_install_time'
:
'2021-06-24T11:32:33Z'
,
#
'asa_install_time':'2021-06-24T11:32:33Z',
...
...
ios_event_case/ios_fenlianjie.py
View file @
c5c8f3aa
...
@@ -6,7 +6,7 @@ import string
...
@@ -6,7 +6,7 @@ import string
import
time
import
time
#iOS常规渠道激活
#iOS常规渠道激活
appkey
=
'
cd9a88d26f715c3a0503dd9a1476ccc
d'
appkey
=
'
16dc0cb882d3dbec4f7f66251a84d6d
d'
event
=
'event_1'
event
=
'event_1'
for
index
in
range
(
1
):
for
index
in
range
(
1
):
...
@@ -17,8 +17,8 @@ for index in range(1):
...
@@ -17,8 +17,8 @@ for index in range(1):
d
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
d
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
e
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
12
))
e
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
12
))
i
=
(
a
+
"-"
+
b
+
"-"
+
c
+
"-"
+
d
+
"-"
+
e
)
.
upper
()
#
i = (a + "-" + b + "-" + c + "-" + d + "-" + e).upper()
# i = 'R8DUK9OE-8QBE-W8YJ-TFP1-A6W3KZEVGYU2
'
i
=
'NDHAFTRN-LUAS-89ER-ABI2-YYU0NQEOXESD
'
print
(
i
)
print
(
i
)
adid
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
adid
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
# 随机生成ip
# 随机生成ip
...
...
microservices/attributioncase.py
View file @
c5c8f3aa
...
@@ -5,6 +5,7 @@ import socket
...
@@ -5,6 +5,7 @@ import socket
import
struct
import
struct
import
random
import
random
import
time
import
time
import
hashlib
import
requests
import
requests
import
json
import
json
# 700bdf6f8e628686dc9fffccf6ebe58b 对应的安卓短链:73iIZ3a
# 700bdf6f8e628686dc9fffccf6ebe58b 对应的安卓短链:73iIZ3a
...
@@ -15,11 +16,332 @@ import json
...
@@ -15,11 +16,332 @@ import json
# print(clickparams.parms)
# print(clickparams.parms)
# print(response.text)
# print(response.text)
i
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
i
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
i2
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
a
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
q
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
16
))
o
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
m
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
17
))
g
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
36
))
md
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
32
))
z
=
'00000000-0000-0000-0000-000000000000'
z1
=
'000000000000000'
z2
=
'0000000000000000'
z3
=
'0000000000000000000000000000000000000000000000000000000000000000'
ip
=
socket
.
inet_ntoa
(
struct
.
pack
(
'>I'
,
random
.
randint
(
1
,
0xffffffff
)))
# md5加密
def
computeMD5
(
message
):
m
=
hashlib
.
md5
()
m
.
update
(
message
.
encode
(
encoding
=
'utf-8'
))
return
m
.
hexdigest
()
# 生成小写字母加数字组合
n
=
10
def
code_nums
(
n
=
6
):
ret
=
''
for
i
in
range
(
n
):
num
=
random
.
randint
(
0
,
9
)
letter
=
chr
(
random
.
randint
(
97
,
122
))
s
=
str
(
random
.
choice
([
num
,
letter
]))
ret
+=
s
return
ret
# 生成大写字母加数字组合
n
=
10
def
code_Nums
(
n
=
6
):
ret
=
''
for
i
in
range
(
n
):
num
=
random
.
randint
(
0
,
9
)
letter
=
chr
(
random
.
randint
(
65
,
90
))
s
=
str
(
random
.
choice
([
num
,
letter
]))
ret
+=
s
return
ret
# ------------------------点击deviceid取值顺序-----------------------
# device_id取值顺序-oaid不为空,取oaid
def
test_qz1
():
redirectandroid
.
parms
[
'oaid'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
# device_id取值顺序-oaid为空,imei1,imei2,mac,android_id,ipv4不为空,取imei1
def
test_qz2
():
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
parms
[
'imei2'
]
=
o
redirectandroid
.
parms
[
'mac'
]
=
m
redirectandroid
.
parms
[
'android_id'
]
=
q
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
i
)
# device_id取值顺序-oaid,imei1为空,imei2,mac,android_id,ipv4不为空,取imei2
def
test_qz3
():
redirectandroid
.
parms
[
'imei2'
]
=
i
redirectandroid
.
parms
[
'mac'
]
=
m
redirectandroid
.
parms
[
'android_id'
]
=
q
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
i
)
# device_id取值顺序-oaid,imei1,imei2为空,mac,android_id,ipv4不为空,取mac
def
test_qz4
():
redirectandroid
.
parms
[
'mac'
]
=
m
redirectandroid
.
parms
[
'android_id'
]
=
q
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
i
)
# device_id取值顺序-oaid,imei1,imei2,mac为空,android_id,ipv4不为空,取android_id
def
test_qz5
():
redirectandroid
.
parms
[
'android_id'
]
=
q
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
i
)
# device_id取值顺序-oaid,imei1,imei2,mac,android_id为空,ipv4不为空,取ipv4
def
test_qz6
():
redirectandroid
.
parms
[
'ipv4'
]
=
ip
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
ip
)
# ------------------------点击device_id_md5取值顺序-----------------------
# device_id_md5取值顺序-imei1_md5,imei2_md5,oaid_md5,gaid_md5,mac_md5,android_id_md5不为空,取oaid_md5
def
test_qz7
():
redirectandroid
.
parms
[
'imei1_md5'
]
=
computeMD5
(
i
)
redirectandroid
.
parms
[
'imei2_md5'
]
=
computeMD5
(
i2
)
redirectandroid
.
parms
[
'oaid_md5'
]
=
computeMD5
(
o
)
redirectandroid
.
parms
[
'gaid_md5'
]
=
computeMD5
(
g
)
redirectandroid
.
parms
[
'mac_md5'
]
=
computeMD5
(
m
)
redirectandroid
.
parms
[
'android_id_md5'
]
=
computeMD5
(
a
)
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
i
)
print
(
computeMD5
(
i
))
# device_id_md5取值顺序-oaid_md5为空,imei1_md5,imei2_md5,gaid_md5,mac_md5,android_id_md5不为空,取imei1_md5
def
test_qz8
():
redirectandroid
.
parms
[
'imei1_md5'
]
=
computeMD5
(
i
)
redirectandroid
.
parms
[
'imei2_md5'
]
=
computeMD5
(
i2
)
redirectandroid
.
parms
[
'gaid_md5'
]
=
computeMD5
(
g
)
redirectandroid
.
parms
[
'mac_md5'
]
=
computeMD5
(
m
)
redirectandroid
.
parms
[
'android_id_md5'
]
=
computeMD5
(
a
)
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
i
)
print
(
computeMD5
(
i
))
# device_id_md5取值顺序-imei1_md5,oaid_md5为空,imei2_md5,gaid_md5,mac_md5,android_id_md5不为空,取imei2_md5
def
test_qz9
():
redirectandroid
.
parms
[
'imei2_md5'
]
=
computeMD5
(
i2
)
redirectandroid
.
parms
[
'gaid_md5'
]
=
computeMD5
(
g
)
redirectandroid
.
parms
[
'mac_md5'
]
=
computeMD5
(
m
)
redirectandroid
.
parms
[
'android_id_md5'
]
=
computeMD5
(
a
)
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
computeMD5
(
i2
))
# device_id_md5取值顺序-imei1_md5,oaid_md5,imei2_md5为空,gaid_md5,mac_md5,android_id_md5不为空,取mac_md5
def
test_qz10
():
redirectandroid
.
parms
[
'mac_md5'
]
=
computeMD5
(
m
)
redirectandroid
.
parms
[
'gaid_md5'
]
=
computeMD5
(
g
)
redirectandroid
.
parms
[
'android_id_md5'
]
=
computeMD5
(
a
)
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
m
)
print
(
computeMD5
(
m
))
# device_id_md5取值顺序-imei1_md5,oaid_md5,imei2_md5,mac_md5为空,android_id_md5不为空,取android_id_md5
def
test_qz11
():
redirectandroid
.
parms
[
'gaid_md5'
]
=
computeMD5
(
g
)
redirectandroid
.
parms
[
'android_id_md5'
]
=
computeMD5
(
a
)
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
print
(
a
)
print
(
computeMD5
(
a
))
# -----------------------安卓精准归因----------------------------
# 安卓精准归因-oaid归因
def
test_atb1
():
def
test_atb1
():
i
=
code_nums
(
12
)
redirectandroid
.
parms
[
'oaid'
]
=
i
redirectandroid
.
parms
[
'oaid'
]
=
i
redirectandroid
.
send_request
(
"73iIZ3a"
,
''
)
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'oaid'
receiveandroid
.
send_request
()
print
(
i
)
# 安卓精准归因-imei1归因
def
test_atb2
():
i
=
code_nums
(
12
)
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
i
)
# 安卓精准归因-imei2归因
def
test_atb3
():
i
=
code_nums
(
12
)
redirectandroid
.
parms
[
'imei2'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei2'
receiveandroid
.
send_request
()
print
(
i
)
# 安卓精准归因-mac归因
def
test_atb4
():
m
=
code_nums
(
17
)
redirectandroid
.
parms
[
'mac'
]
=
m
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
m
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
m
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'mac'
receiveandroid
.
send_request
()
print
(
m
)
# 安卓精准归因-gaid归因
def
test_atb5
():
g
=
code_nums
(
36
)
redirectandroid
.
parms
[
'gaid'
]
=
g
redirectandroid
.
parms
[
'imei1'
]
=
q
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
g
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
i
)
# 安卓精准归因-imei1_md5归因
def
test_atb6
():
redirectandroid
.
parms
[
'imei1_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-imei2_md5归因
def
test_atb7
():
redirectandroid
.
parms
[
'imei2_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-oaid_md5归因
def
test_atb8
():
redirectandroid
.
parms
[
'oaid_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-mac_md5归因
def
test_atb9
():
redirectandroid
.
parms
[
'mac_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-gaid_md5归因
def
test_atb9
():
redirectandroid
.
parms
[
'gaid_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# ---------------------点击激活中设备大小写不一致,无法归因上----------------------------
# 安卓精准归因-imei1归因:点击imei1大写,激活中imei1小写,无法归因上
def
test_atb10
():
imei1
=
code_nums
(
12
)
redirectandroid
.
parms
[
'imei1'
]
=
imei1
.
upper
()
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
imei1
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
imei1
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
imei1
)
# 安卓精准归因-imei2归因:点击imei2大写,激活中imei2小写,无法归因上
def
test_atb14
():
imei2
=
code_nums
(
12
)
redirectandroid
.
parms
[
'imei2'
]
=
imei2
.
upper
()
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
imei2
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
imei2
)
print
(
i
)
# 安卓精准归因-oaid归因:点击oaid大写,激活中oaid小写,无法归因上
def
test_atb11
():
i
=
code_nums
(
12
)
redirectandroid
.
parms
[
'oaid'
]
=
i
.
upper
()
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
i
...
@@ -29,3 +351,617 @@ def test_atb1():
...
@@ -29,3 +351,617 @@ def test_atb1():
# 安卓精准归因-mac归因:点击mac大写,激活中mac小写,无法归因上
def
test_atb12
():
m
=
code_nums
(
17
)
redirectandroid
.
parms
[
'mac'
]
=
m
.
upper
()
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
m
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
m
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'mac'
receiveandroid
.
send_request
()
print
(
m
)
# 安卓精准归因-gaid归因:点击gaid大写,激活中gaid小写,无法归因上
def
test_atb13
():
g
=
code_nums
(
36
)
redirectandroid
.
parms
[
'gaid'
]
=
g
.
upper
()
redirectandroid
.
parms
[
'imei1'
]
=
q
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
g
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
i
)
# 安卓精准归因-imei1归因:点击imei1小写,激活中imei1大写,无法归因上
def
test_atb15
():
imei1
=
code_nums
(
12
)
redirectandroid
.
parms
[
'imei1'
]
=
imei1
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
imei1
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
imei1
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
imei1
.
upper
())
# 安卓精准归因-imei2归因:点击imei2小写,激活中imei2小大写,无法归因上
def
test_atb16
():
imei2
=
code_nums
(
12
)
redirectandroid
.
parms
[
'imei2'
]
=
imei2
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
imei2
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
imei2
)
print
(
i
)
# 安卓精准归因-oaid归因:点击oaid小写,激活中oaid小大写,无法归因上
def
test_atb17
():
i
=
code_nums
(
12
)
redirectandroid
.
parms
[
'oaid'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
i
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'oaid'
receiveandroid
.
send_request
()
print
(
i
)
# 安卓精准归因-mac归因:点击mac小写,激活中mac大写,无法归因上
def
test_atb18
():
m
=
code_nums
(
17
)
redirectandroid
.
parms
[
'mac'
]
=
m
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
m
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
m
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'mac'
receiveandroid
.
send_request
()
print
(
m
.
upper
())
# 安卓精准归因-gaid归因:点击gaid小写,激活中gaid大写,无法归因上
def
test_atb19
():
g
=
code_nums
(
36
)
redirectandroid
.
parms
[
'gaid'
]
=
g
redirectandroid
.
parms
[
'imei1'
]
=
q
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
g
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
i
)
# 安卓精准归因-imei1_md5归因:点击imei1_md5大写,激活中imei1_md5小写,无法归因上
def
test_atb20
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'imei1_md5'
]
=
md
.
upper
()
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-imei2_md5归因:点击imei2_md5大写,激活中imei2_md5小写,无法归因上
def
test_atb21
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'imei2_md5'
]
=
md
.
upper
()
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-oaid_md5归因:点击oaid_md5大写,激活中oaid_md5小写,无法归因上
def
test_atb22
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'oaid_md5'
]
=
md
.
upper
()
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-mac_md5归因:点击mac_md5大写,激活中mac_md5小写,无法归因上
def
test_atb23
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'mac_md5'
]
=
md
.
upper
()
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-gaid_md5归因:点击gaid_md5大写,激活中gaid_md5小写,无法归因上
def
test_atb24
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'gaid_md5'
]
=
md
.
upper
()
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
md
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-imei1_md5归因:点击imei1_md5小写,激活中imei1_md5小大写,无法归因上
def
test_atb25
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'imei1_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
md
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-imei2_md5归因:点击imei2_md5小写,激活中imei2_md5大写,无法归因上
def
test_atb26
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'imei2_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
md
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-oaid_md5归因:点击oaid_md5小写,激活中oaid_md5大写,无法归因上
def
test_atb27
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'oaid_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
md
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-mac_md5归因:点击mac_md5小写,激活中mac_md5大写,无法归因上
def
test_atb28
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'mac_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
md
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# 安卓精准归因-gaid_md5归因:点击gaid_md5小写,激活中gaid_md5大写,无法归因上
def
test_atb29
():
md
=
code_nums
(
32
)
redirectandroid
.
parms
[
'gaid_md5'
]
=
md
redirectandroid
.
parms
[
'imei1'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
md
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
send_request
()
print
(
o
)
# -----------------------不可用归因的设备ID无法精准归因----------------------
# android_id相同,激活中其他参数为空,无法归因
def
test_atb30
():
i
=
code_nums
(
16
)
redirectandroid
.
parms
[
'android_id'
]
=
i
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
a
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
send_request
()
print
(
i
)
# 点击激活oaid为’00000000-0000-0000-0000-000000000000‘,激活中其他参数为空,无法归因
def
test_atb31
():
i
=
code_nums
(
16
)
redirectandroid
.
parms
[
'oaid'
]
=
z
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
z
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
a
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
send_request
()
print
(
i
)
# 点击激活oaid为’000000000000000‘,激活中其他参数与点击不同,无法归因
def
test_atb32
():
i
=
code_nums
(
16
)
redirectandroid
.
parms
[
'oaid'
]
=
z1
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
z1
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
computeMD5
(
z1
)
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# 点击激活oaid为’0000000000000000000000000000000000000000000000000000000000000000‘,激活中其他参数与点击不同,无法归因
def
test_atb33
():
i
=
code_nums
(
16
)
redirectandroid
.
parms
[
'oaid'
]
=
z2
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
z2
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
computeMD5
(
z1
)
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# 点击激活oaid_md5为’9f89c84a559f573636a47ff8daed0d33‘,激活中其他参数与点击不同,无法归因
def
test_atb34
():
i
=
code_nums
(
16
)
o
=
'9f89c84a559f573636a47ff8daed0d33'
redirectandroid
.
parms
[
'oaid_md5'
]
=
o
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# 点击激活oaid_md5为大写’9f89c84a559f573636a47ff8daed0d33‘,激活中其他参数与点击不同,无法归因(待产品决定)
def
test_atb35
():
i
=
code_nums
(
16
)
o
=
'9f89c84a559f573636a47ff8daed0d33'
redirectandroid
.
parms
[
'oaid_md5'
]
=
o
.
upper
()
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
o
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,无法归因
def
test_atb36
():
i
=
code_nums
(
16
)
o
=
'5284047f4ffb4e04824a2fd1d1f0cd62'
redirectandroid
.
parms
[
'oaid_md5'
]
=
o
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# 点击激活oaid_md5为大写’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,无法归因(待产品决定)
def
test_atb37
():
i
=
code_nums
(
16
)
o
=
'5284047f4ffb4e04824a2fd1d1f0cd62'
redirectandroid
.
parms
[
'oaid_md5'
]
=
o
.
upper
()
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
o
.
upper
()
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# 点击激活oaid_md5为写’1e4a1b03d1b6cd8a174a826f76e009f4‘,激活中其他参数与点击不同,无法归因
def
test_atb38
():
i
=
code_nums
(
16
)
o
=
'1e4a1b03d1b6cd8a174a826f76e009f4'
redirectandroid
.
parms
[
'oaid_md5'
]
=
o
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# 点击激活oaid_md5为写’10eab6008d5642cf42abd2aa41f847cb‘,激活中其他参数与点击不同,无法归因
def
test_atb39
():
i
=
code_nums
(
16
)
o
=
'10eab6008d5642cf42abd2aa41f847cb'
redirectandroid
.
parms
[
'oaid_md5'
]
=
o
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
# ------------------------------概率归因---------------------
# 点击激活oaid_md5为’5284047f4ffb4e04824a2fd1d1f0cd62‘,激活中其他参数与点击不同,ip相同,ua_click_fp_ip_switch为关闭/开启状态,不可/可归因
# ua_click_fp_ipua_switch开启,测一下是否影响ip归因,安卓没有ipua归因,所以在ipua开启时,ip关闭时,不可归因
def
test_atb40
():
i
=
code_nums
(
16
)
o
=
'5284047f4ffb4e04824a2fd1d1f0cd62'
redirectandroid
.
parms
[
'oaid_md5'
]
=
o
redirectandroid
.
parms
[
'ipv4'
]
=
ip
redirectandroid
.
send_request3
(
"73iIZ3a"
,
''
)
time
.
sleep
(
10
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
print
(
ip
)
# 当receive信息中的可用归因设备ID,其md5值为空时,需要实时添加md5加密值,加密后的md5参数名称与<receive_template.txt>中相关md5值一致,
# 包括:"oaid_md5","imei1_md5","imei2_md5","mac_md5","gaid_md5"。
def
test_atb41
():
i
=
code_nums
(
16
)
o
=
code_nums
(
16
)
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'imei1'
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid'
]
=
o
receiveandroid
.
data
[
0
][
'device_info'
][
'oaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1'
]
=
a
receiveandroid
.
data
[
0
][
'device_info'
][
'imei1_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2'
]
=
code_nums
(
12
)
receiveandroid
.
data
[
0
][
'device_info'
][
'imei2_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'mac'
]
=
code_nums
(
17
)
receiveandroid
.
data
[
0
][
'device_info'
][
'mac_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid'
]
=
code_nums
(
36
)
receiveandroid
.
data
[
0
][
'device_info'
][
'gaid_md5'
]
=
''
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id_md5'
]
=
computeMD5
(
i
)
receiveandroid
.
data
[
0
][
'device_info'
][
'android_id'
]
=
i
receiveandroid
.
data
[
0
][
'device_info'
][
'ipv4'
]
=
ip
receiveandroid
.
send_request
()
print
(
a
)
\ No newline at end of file
microservices/attributioncaseios.py
0 → 100644
View file @
c5c8f3aa
from
microservices
import
redirectios
from
microservices
import
receiveios
import
string
import
random
import
socket
import
struct
import
hashlib
import
time
ip
=
socket
.
inet_ntoa
(
struct
.
pack
(
'>I'
,
random
.
randint
(
1
,
0xffffffff
)))
# md5加密
def
computeMD5
(
message
):
m
=
hashlib
.
md5
()
m
.
update
(
message
.
encode
(
encoding
=
'utf-8'
))
return
m
.
hexdigest
()
# md5加密
def
computeMD5upper
(
message
):
m
=
hashlib
.
md5
()
m
.
update
(
message
.
encode
(
encoding
=
'utf-8'
))
return
m
.
hexdigest
()
.
upper
()
def
idfacode
():
ret
=
''
a
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
8
))
b
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
c
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
d
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
e
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
12
))
i
=
(
a
+
"-"
+
b
+
"-"
+
c
+
"-"
+
d
+
"-"
+
e
)
.
upper
()
ret
+=
i
return
ret
def
idfvcode
():
ret
=
''
a
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
8
))
b
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
c
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
d
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
4
))
e
=
""
.
join
(
random
.
sample
(
string
.
ascii_letters
+
string
.
digits
,
12
))
i
=
(
a
+
"-"
+
b
+
"-"
+
c
+
"-"
+
d
+
"-"
+
e
)
.
upper
()
ret
+=
i
return
ret
# ------------------------点击的取值顺序-----------------
# idfa正常值,idfv为正常值;idfa_md5正常值,idfv_md5为正常值,deviceid取idfa,deviceid md5取idfa_md5
def
test_atb1
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
redirectios
.
parms
[
'idfa_md5'
]
=
computeMD5
(
i
)
redirectios
.
parms
[
'idfv'
]
=
v
redirectios
.
parms
[
'idfv_md5'
]
=
computeMD5
(
v
)
redirectios
.
parms
[
'ipv4'
]
=
ip
redirectios
.
send_request3
(
'mURv22a'
,
''
)
print
(
i
)
# idfa>ipv4
# idfa为空,idfv为正常值;idfa_md5为空,idfv_md5为正常值,deviceid取ip
def
test_atb2
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
''
redirectios
.
parms
[
'idfa_md5'
]
=
''
redirectios
.
parms
[
'idfv'
]
=
v
redirectios
.
parms
[
'idfv_md5'
]
=
computeMD5
(
v
)
redirectios
.
parms
[
'ipv4'
]
=
ip
redirectios
.
send_request3
(
'mURv22a'
,
''
)
print
(
i
)
# ------------------------精准归因-----------------
# idfa正常值,idfv为正常值;idfa_md5正常值,idfv_md5为正常值,归因结果为idfa
def
test_atb3
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
redirectios
.
parms
[
'idfa_md5'
]
=
computeMD5
(
i
)
redirectios
.
send_request3
(
'mURv22a'
,
''
)
time
.
sleep
(
8
)
receiveios
.
data
[
0
][
'device_info'
][
'idfa'
]
=
i
receiveios
.
data
[
0
][
'device_info'
][
'idfa_md5'
]
=
computeMD5
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'idfv'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'idfv_md5'
]
=
computeMD5
(
v
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5'
]
=
computeMD5
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'idfa'
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5_type'
]
=
'idfa_md5'
receiveios
.
send_request
()
print
(
i
)
# idfa点击为小写,iafa激活为大写,无归因
def
test_atb4
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
.
lower
()
redirectios
.
parms
[
'idfa_md5'
]
=
''
redirectios
.
send_request3
(
'mURv22a'
,
''
)
time
.
sleep
(
8
)
receiveios
.
data
[
0
][
'device_info'
][
'idfa'
]
=
i
receiveios
.
data
[
0
][
'device_info'
][
'idfa_md5'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'idfv'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'idfv_md5'
]
=
computeMD5
(
v
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'idfa'
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5_type'
]
=
''
receiveios
.
send_request
()
print
(
i
)
# idfa点击为大写,idfa激活为小写,无归因
def
test_atb5
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
redirectios
.
parms
[
'idfa_md5'
]
=
''
redirectios
.
send_request3
(
'mURv22a'
,
''
)
time
.
sleep
(
8
)
receiveios
.
data
[
0
][
'device_info'
][
'idfa'
]
=
i
.
lower
()
receiveios
.
data
[
0
][
'device_info'
][
'idfa_md5'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'idfv'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'idfv_md5'
]
=
computeMD5
(
v
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
.
lower
()
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'idfa'
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5_type'
]
=
''
receiveios
.
send_request
()
print
(
i
.
lower
())
# 激活中的idfa_md5与点击中的idfa_md5一致,点击中idfa正常,激活中idfa为空,归因结果为idfa_md5
def
test_atb6
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
redirectios
.
parms
[
'idfa_md5'
]
=
computeMD5
(
i
)
redirectios
.
send_request3
(
'mURv22a'
,
''
)
time
.
sleep
(
8
)
receiveios
.
data
[
0
][
'device_info'
][
'idfa'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'idfa_md5'
]
=
computeMD5
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'idfv'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'idfv_md5'
]
=
computeMD5
(
v
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5'
]
=
computeMD5
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'idfv'
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5_type'
]
=
'idfa_md5'
receiveios
.
send_request
()
print
(
v
)
# 激活中的idfa_md5与点击中的idfa_md5大小写不一致,点击中idfa_md5为小写,激活中idfa_md5为大写,不归因
def
test_atb7
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
redirectios
.
parms
[
'idfa_md5'
]
=
computeMD5
(
i
)
redirectios
.
send_request3
(
'mURv22a'
,
''
)
time
.
sleep
(
8
)
receiveios
.
data
[
0
][
'device_info'
][
'idfa'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'idfa_md5'
]
=
computeMD5upper
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'idfv'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'idfv_md5'
]
=
computeMD5
(
v
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5'
]
=
computeMD5
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'idfv'
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5_type'
]
=
'idfa_md5'
receiveios
.
send_request
()
print
(
v
)
# 激活中的idfa_md5与点击中的idfa_md5大小写不一致,点击中idfa_md5为大写,激活中idfa_md5为小写,不归因
def
test_atb8
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
redirectios
.
parms
[
'idfa_md5'
]
=
computeMD5upper
(
i
)
redirectios
.
send_request3
(
'mURv22a'
,
''
)
time
.
sleep
(
8
)
receiveios
.
data
[
0
][
'device_info'
][
'idfa'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'idfa_md5'
]
=
computeMD5
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'idfv'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'idfv_md5'
]
=
computeMD5
(
v
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5'
]
=
computeMD5
(
i
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'idfv'
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5_type'
]
=
'idfa_md5'
receiveios
.
send_request
()
print
(
v
)
print
(
computeMD5
(
i
))
# idfa点击为小写,iafa激活为大写,idfa_md5点击有值,激活无值,实时侧添加md5加密值,归因方式为md5
def
test_atb9
():
i
=
idfacode
()
v
=
idfvcode
()
redirectios
.
parms
[
'idfa'
]
=
i
.
lower
()
redirectios
.
parms
[
'idfa_md5'
]
=
computeMD5
(
i
)
redirectios
.
send_request3
(
'mURv22a'
,
''
)
time
.
sleep
(
8
)
receiveios
.
data
[
0
][
'device_info'
][
'idfa'
]
=
i
receiveios
.
data
[
0
][
'device_info'
][
'idfa_md5'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'idfv'
]
=
v
receiveios
.
data
[
0
][
'device_info'
][
'idfv_md5'
]
=
computeMD5
(
v
)
receiveios
.
data
[
0
][
'device_info'
][
'device_id'
]
=
i
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5'
]
=
''
receiveios
.
data
[
0
][
'device_info'
][
'device_id_type'
]
=
'idfa'
receiveios
.
data
[
0
][
'device_info'
][
'device_id_md5_type'
]
=
''
receiveios
.
send_request
()
print
(
i
)
\ No newline at end of file
microservices/receiveios.py
View file @
c5c8f3aa
import
requests
import
requests
import
json
import
json
import
pytest
import
pytest
import
time
url
=
"http://tkiomicro-receive-788931749.cn-north-1.elb.amazonaws.com.cn/receive/tkiov2/sdk"
url
=
"http://tkiomicro-receive-788931749.cn-north-1.elb.amazonaws.com.cn/receive/tkiov2/sdk"
chaochang
=
'543214223221321321312131313133132131232131232132132543214223221321321312131313133132131232131232132132543214223221321321312131313133132131232131232132132'
chaochang
=
'543214223221321321312131313133132131232131232132132543214223221321321312131313133132131232131232132132543214223221321321312131313133132131232131232132132'
...
@@ -13,16 +14,16 @@ global data
...
@@ -13,16 +14,16 @@ global data
data
=
[
data
=
[
{
{
"application_info"
:
{
"application_info"
:
{
"appkey"
:
"
74b81be2432c029040e0b2bc375ce7fb
"
,
"appkey"
:
"
22e7d9a67fd54ecb5b298ab7fbb1fb7c
"
,
"bundleid"
:
"3423232"
,
"bundleid"
:
"3423232"
,
"app_version"
:
"1.9.0"
,
"app_version"
:
"1.9.0"
,
"channel_name"
:
"default"
"channel_name"
:
"default"
},
},
"timestamp_info"
:
{
"timestamp_info"
:
{
"time_zone"
:
"GMT+08"
,
"time_zone"
:
"GMT+08"
,
"install_time"
:
"1637823377000"
,
"install_time"
:
int
(
round
(
time
.
time
()
*
1000
))
,
"current_event_time"
:
"1637823377000"
,
"current_event_time"
:
int
(
round
(
time
.
time
()
*
1000
))
,
"report_time"
:
"1637823377000"
"report_time"
:
int
(
round
(
time
.
time
()
*
1000
)),
},
},
"collector_info"
:
{
"collector_info"
:
{
"integration_type"
:
"sdk"
,
"integration_type"
:
"sdk"
,
...
@@ -83,6 +84,7 @@ data_temp = json.dumps(data)
...
@@ -83,6 +84,7 @@ data_temp = json.dumps(data)
def
send_request
():
def
send_request
():
global
data
global
data
url
=
"http://tkiomicro-receive-788931749.cn-north-1.elb.amazonaws.com.cn/receive/tkiov2/sdk"
url
=
"http://tkiomicro-receive-788931749.cn-north-1.elb.amazonaws.com.cn/receive/tkiov2/sdk"
data
[
0
][
'timestamp_info'
][
'install_time'
]
=
int
(
round
(
time
.
time
()
*
1000
))
# print(data)
# print(data)
response
=
requests
.
request
(
"POST"
,
url
,
headers
=
headers
,
data
=
json
.
dumps
(
data
))
response
=
requests
.
request
(
"POST"
,
url
,
headers
=
headers
,
data
=
json
.
dumps
(
data
))
print
(
response
.
text
)
print
(
response
.
text
)
...
...
microservices/redirectandroid.py
View file @
c5c8f3aa
...
@@ -30,21 +30,21 @@ parms = {
...
@@ -30,21 +30,21 @@ parms = {
# 用户代理信息。限制512字符内。is_s2s=1时都必传,0时都选传,0时优先取传参UA,未传参或报错时,取http header中的user agent作为ua的值
# 用户代理信息。限制512字符内。is_s2s=1时都必传,0时都选传,0时优先取传参UA,未传参或报错时,取http header中的user agent作为ua的值
'ua'
:
'Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36'
,
'ua'
:
'Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36'
,
# Android OAID原值。限制512字符内。Android选传,app_platform=ios时报错
# Android OAID原值。限制512字符内。Android选传,app_platform=ios时报错
'oaid'
:
'
3DEA635F-B24F-434B-833F-4ED028FEAEEF
'
,
'oaid'
:
''
,
# Android OAID原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
# Android OAID原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
'oaid_md5'
:
'
8e488a40a17aed2f6752f51382a4eafc
'
,
'oaid_md5'
:
''
,
# Android主卡IMEI原值。限制32字符内。Android选传,app_platform=ios时报错
# Android主卡IMEI原值。限制32字符内。Android选传,app_platform=ios时报错
'imei1'
:
'
8342732742383
'
,
'imei1'
:
''
,
# Android主卡IMEI原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
# Android主卡IMEI原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
'imei1_md5'
:
'
8e488a40a17aed2f6752f51382a4eafc
'
,
'imei1_md5'
:
''
,
# Android副卡IMEI原值。限制32字符内。Android选传,app_platform=ios时报错
# Android副卡IMEI原值。限制32字符内。Android选传,app_platform=ios时报错
'imei2'
:
'
8342732742383
'
,
'imei2'
:
''
,
# Android副卡IMEI原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
# Android副卡IMEI原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
'imei2_md5'
:
'
8e488a40a17aed2f6752f51382a4eafc
'
,
'imei2_md5'
:
''
,
# Google Advertising ID原值。固定36字符。Android选传,app_platform=ios时报错
# Google Advertising ID原值。固定36字符。Android选传,app_platform=ios时报错
'gaid'
:
'
B21C5EC5-9921-42FD-AAC5-07A0EB6CF1A0
'
,
'gaid'
:
''
,
# Google Advertising ID原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
# Google Advertising ID原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
'gaid_md5'
:
'
8e488a40a17aed2f6752f51382a4eafc
'
,
'gaid_md5'
:
''
,
# //MAC原值。固定17字符。Android选传,app_platform=ios时报错
# //MAC原值。固定17字符。Android选传,app_platform=ios时报错
'mac'
:
''
,
'mac'
:
''
,
# MAC原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
# MAC原值MD5后转小写。固定为32字符。Android选传,app_platform=ios时报错
...
@@ -112,7 +112,6 @@ data_temp = json.dumps(parms)
...
@@ -112,7 +112,6 @@ data_temp = json.dumps(parms)
def
send_request
(
dl
,
cs
):
def
send_request
(
dl
,
cs
):
global
parms
global
parms
url1
=
'http://tmtest.trackingio.com/receive/turl/'
+
dl
+
cs
url1
=
'http://tmtest.trackingio.com/receive/turl/'
+
dl
+
cs
parms
[
'ts'
]
=
int
(
round
(
time
.
time
()
*
1000
))
response
=
requests
.
get
(
url
=
url1
,
params
=
parms
,
timeout
=
10
,
verify
=
False
)
response
=
requests
.
get
(
url
=
url1
,
params
=
parms
,
timeout
=
10
,
verify
=
False
)
print
(
response
.
url
)
print
(
response
.
url
)
print
(
response
.
text
)
print
(
response
.
text
)
...
@@ -130,6 +129,16 @@ def send_request2(dl, cs):
...
@@ -130,6 +129,16 @@ def send_request2(dl, cs):
# response = json.loads(response.text)
# response = json.loads(response.text)
return
response
return
response
def
send_request3
(
dl
,
cs
):
global
parms
url1
=
'http://tmtest.trackingio.com/receive/turl/'
+
dl
+
cs
parms
[
'ts'
]
=
int
(
round
(
time
.
time
()
*
1000
))
response
=
requests
.
get
(
url
=
url1
,
params
=
parms
,
timeout
=
10
,
verify
=
False
)
print
(
response
.
url
)
print
(
response
.
text
)
parms
=
json
.
loads
(
data_temp
)
response
=
json
.
loads
(
response
.
text
)
return
response
# 短链错误
# 短链错误
def
test_dl
():
def
test_dl
():
...
@@ -138,28 +147,33 @@ def test_dl():
...
@@ -138,28 +147,33 @@ def test_dl():
# 触点传参时间为正常
# 触点传参时间为正常
def
test_ts
1
():
def
test_ts
9
():
parms
[
'ts'
]
=
current_time_13
parms
[
'ts'
]
=
current_time_13
re
=
send_request
(
'Yzuiuma'
,
''
)
re
=
send_request
(
'Yzuiuma'
,
''
)
assert
re
[
"status"
]
==
0
assert
re
[
"status"
]
==
0
# 触点传参时间超过13字符
# 触点传参时间超过13字符
def
test_ts
2
():
def
test_ts
8
():
parms
[
'ts'
]
=
'16462909436611'
parms
[
'ts'
]
=
'16462909436611
321
'
re
=
send_request
(
'Yzuiuma'
,
''
)
re
=
send_request
(
'Yzuiuma'
,
''
)
assert
re
[
"status"
]
==
167
assert
re
[
"status"
]
==
167
# 触点传参时间等于13字符,但是包含特殊字符
# 触点传参时间等于13字符,但是包含特殊字符
def
test_ts
3
():
def
test_ts
7
():
parms
[
'ts'
]
=
'1@46290943661'
parms
[
'ts'
]
=
'1@46290943661'
re
=
send_request
(
'Yzuiuma'
,
''
)
re
=
send_request
(
'Yzuiuma'
,
''
)
assert
re
[
"status"
]
==
167
assert
re
[
"status"
]
==
167
# 触点传参时间等于13字符,但是包含汉子
def
test_ts0
():
parms
[
'ts'
]
=
'1测4690943661'
re
=
send_request
(
'Yzuiuma'
,
''
)
assert
re
[
"status"
]
==
167
# iss2s=1,ts为空
# iss2s=1,ts为空
def
test_ts
3
():
def
test_ts
6
():
parms
[
'ts'
]
=
""
parms
[
'ts'
]
=
""
parms
[
'is_s2s'
]
=
"1"
parms
[
'is_s2s'
]
=
"1"
re
=
send_request
(
'Yzuiuma'
,
''
)
re
=
send_request
(
'Yzuiuma'
,
''
)
...
@@ -167,7 +181,7 @@ def test_ts3():
...
@@ -167,7 +181,7 @@ def test_ts3():
# iss2s=0,ts为空,跳转至监测链接的landing_page_url地址
# iss2s=0,ts为空,跳转至监测链接的landing_page_url地址
def
test_ts
4
():
def
test_ts
5
():
parms
[
'ts'
]
=
""
parms
[
'ts'
]
=
""
parms
[
'is_s2s'
]
=
"0"
parms
[
'is_s2s'
]
=
"0"
send_request2
(
'Yzuiuma'
,
''
)
send_request2
(
'Yzuiuma'
,
''
)
...
...
microservices/redirectios.py
View file @
c5c8f3aa
...
@@ -14,7 +14,7 @@ global parms
...
@@ -14,7 +14,7 @@ global parms
parms
=
{
parms
=
{
# 触点传参时间。is_s2s=1时必传,0时选传。不同渠道有可能传多种格式,详见需求。限制32位字符内。短链传参。
# 触点传参时间。is_s2s=1时必传,0时选传。不同渠道有可能传多种格式,详见需求。限制32位字符内。短链传参。
'ts'
:
'2122132121'
,
'ts'
:
int
(
round
(
time
.
time
()
*
1000
))
,
# 集成方式。is_s2s=1为服务器上报触点,0为客户端上报触点。0或1时有不同的参数非空校验,详见需求。固定为0或1。都必传
# 集成方式。is_s2s=1为服务器上报触点,0为客户端上报触点。0或1时有不同的参数非空校验,详见需求。固定为0或1。都必传
'is_s2s'
:
'1'
,
'is_s2s'
:
'1'
,
# 操作系统。限制16字符内。都选传。短链传参。暂不与app_platform互相做校验。
# 操作系统。限制16字符内。都选传。短链传参。暂不与app_platform互相做校验。
...
@@ -24,14 +24,14 @@ parms = {
...
@@ -24,14 +24,14 @@ parms = {
# 用户公网IP v4版本。限制15字符内。is_s2s=1时都必传,0时都选传,0时优先取传参IP,未传参或传参报错时,取http header中的ip作为ipv4的值
# 用户公网IP v4版本。限制15字符内。is_s2s=1时都必传,0时都选传,0时优先取传参IP,未传参或传参报错时,取http header中的ip作为ipv4的值
'ipv4'
:
'1.1.1.1'
,
'ipv4'
:
'1.1.1.1'
,
# 用户公网IP v6版本。限制128字符内。都选传
# 用户公网IP v6版本。限制128字符内。都选传
'ipv6'
:
'
1.1.1.1
'
,
'ipv6'
:
''
,
# 用户代理信息。限制512字符内。is_s2s=1时都必传,0时都选传,0时优先取传参UA,未传参或报错时,取http header中的user agent作为ua的值
# 用户代理信息。限制512字符内。is_s2s=1时都必传,0时都选传,0时优先取传参UA,未传参或报错时,取http header中的user agent作为ua的值
'ua'
:
'Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36'
,
'ua'
:
'Mozilla/5.0 (Linux; U; Android 7.0; zh-cn; Nexus 5X Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/7.3 Mobile Safari/537.36'
,
# iOS IDFA原值。固定为36字符
# iOS IDFA原值。固定为36字符
"idfa"
:
"
3DEA635F-B24F-434B-833F-4ED028FEAEEF
"
,
"idfa"
:
""
,
"idfa_md5"
:
"
8e488a40a17aed2f6752f51382a4eafc
"
,
"idfa_md5"
:
""
,
"idfv"
:
"
3DEA635F-B24F-434B-833F-4ED028FEAEEF
"
,
"idfv"
:
""
,
"idfv_md5"
:
"
8e488a40a17aed2f6752f51382a4eafc
"
,
"idfv_md5"
:
""
,
# 触点类型。固定为click。都必传
# 触点类型。固定为click。都必传
'touchpoint_type'
:
'click'
,
'touchpoint_type'
:
'click'
,
# 归因类型。固定为ua(user acquirement新客获取)
# 归因类型。固定为ua(user acquirement新客获取)
...
@@ -90,10 +90,24 @@ def send_request(dl, cs):
...
@@ -90,10 +90,24 @@ def send_request(dl, cs):
response
=
requests
.
get
(
url
=
url1
,
params
=
parms
,
timeout
=
10
,
verify
=
False
)
response
=
requests
.
get
(
url
=
url1
,
params
=
parms
,
timeout
=
10
,
verify
=
False
)
print
(
response
.
url
)
print
(
response
.
url
)
parms
=
json
.
loads
(
data_temp
)
parms
=
json
.
loads
(
data_temp
)
response
=
json
.
loads
(
response
.
text
)
return
response
def
send_request3
(
dl
,
cs
):
global
parms
url1
=
'http://tmtest.trackingio.com/receive/turl/'
+
dl
+
cs
parms
[
'ts'
]
=
int
(
round
(
time
.
time
()
*
1000
))
response
=
requests
.
get
(
url
=
url1
,
params
=
parms
,
timeout
=
10
,
verify
=
False
)
print
(
response
.
url
)
print
(
response
.
text
)
parms
=
json
.
loads
(
data_temp
)
response
=
json
.
loads
(
response
.
text
)
response
=
json
.
loads
(
response
.
text
)
return
response
return
response
# idfa为空
# idfa为空
def
test_idfa1
():
def
test_idfa1
():
parms
[
'idfa'
]
=
''
parms
[
'idfa'
]
=
''
...
...
xiaochengxu/x_launch.py
View file @
c5c8f3aa
...
@@ -7,7 +7,7 @@ appkey = '9f6dfeed6a42210a781bafb7e62dc722'
...
@@ -7,7 +7,7 @@ appkey = '9f6dfeed6a42210a781bafb7e62dc722'
cid
=
'11469'
cid
=
'11469'
#surl
#surl
surl
=
'Evmu6na'
surl
=
'Evmu6na'
for
_
in
range
(
1
):
for
_
in
range
(
50
):
# 随机生成12为数组
# 随机生成12为数组
i
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
i
=
''
.
join
(
str
(
random
.
choice
(
range
(
10
)))
for
_
in
range
(
12
))
# i = '324014210339'
# i = '324014210339'
...
@@ -17,6 +17,6 @@ for _ in range(1):
...
@@ -17,6 +17,6 @@ for _ in range(1):
#打开
#打开
allEvent
()
.
openxiaochengxu
(
i
,
ip
,
cid
,
surl
,
appkey
)
allEvent
()
.
openxiaochengxu
(
i
,
ip
,
cid
,
surl
,
appkey
)
#pv
#pv
allEvent
()
.
pviaochengxu
(
i
,
ip
,
cid
,
surl
,
appkey
)
#
allEvent().pviaochengxu(i,ip,cid,surl,appkey)
#离开
#
#
离开
# allEvent().hidechengxu(i,ip,cid,surl,appkey)
# allEvent().hidechengxu(i,ip,cid,surl,appkey)
xiaochengxu/冰墩墩.py
deleted
100755 → 0
View file @
cf614b4d
import
turtle
as
t
++ /dev/null
import
turtle
as
t
import
math
# 取消绘图过程
#t.tracer(0)
#设置速度
t
.
speed
(
0
)
#速度
t
.
delay
(
10
)
#延迟
#turtle.tracer(False)
#双耳
#左耳
t
.
penup
()
t
.
goto
(
-
150
,
200
)
t
.
setheading
(
160
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
-
30
,
230
)
t
.
setheading
(
180
)
t
.
circle
(
37
,
90
)
t
.
end_fill
()
#右耳
t
.
penup
()
t
.
goto
(
60
,
200
)
t
.
setheading
(
20
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
30
,
230
)
t
.
setheading
(
0
)
t
.
circle
(
-
37
,
90
)
t
.
end_fill
()
#头
t
.
pensize
(
5
)
t
.
penup
()
t
.
goto
(
-
113
,
237
)
t
.
setheading
(
30
)
t
.
pendown
()
t
.
circle
(
-
134
,
60
)
t
.
penup
()
t
.
goto
(
-
150
,
200
)
t
.
setheading
(
-
120
)
t
.
pendown
()
t
.
circle
(
200
,
80
)
t
.
penup
()
t
.
goto
(
60
,
200
)
t
.
setheading
(
-
60
)
t
.
pendown
()
t
.
circle
(
-
200
,
80
)
t
.
penup
()
t
.
setheading
(
210
)
t
.
pendown
()
t
.
circle
(
-
120
,
60
)
#双眼
#左眼
#眼圈
t
.
penup
()
t
.
goto
(
-
140
,
100
)
t
.
setheading
(
-
45
)
t
.
begin_fill
()
t
.
pendown
()
a
=
0.2
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
a
=
a
+
0.1
t
.
lt
(
3
)
#向左转3度
t
.
fd
(
a
)
#向前走a的步长
else
:
a
=
a
-
0.1
t
.
lt
(
3
)
t
.
fd
(
a
)
t
.
end_fill
()
#眼白
t
.
fillcolor
(
"white"
)
t
.
penup
()
t
.
goto
(
-
103
,
125
)
t
.
setheading
(
0
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
13
,
360
)
t
.
end_fill
()
#眼珠
t
.
fillcolor
(
"sienna"
)
t
.
pencolor
(
"sienna"
)
t
.
penup
()
t
.
goto
(
-
102
,
133
)
t
.
setheading
(
0
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
5
,
360
)
t
.
end_fill
()
#右眼
#眼圈
t
.
penup
()
t
.
goto
(
50
,
100
)
t
.
setheading
(
45
)
t
.
fillcolor
(
"black"
)
t
.
pencolor
(
"black"
)
t
.
begin_fill
()
t
.
pendown
()
a
=
0.2
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
a
=
a
+
0.1
t
.
lt
(
3
)
#向左转3度
t
.
fd
(
a
)
#向前走a的步长
else
:
a
=
a
-
0.1
t
.
lt
(
3
)
t
.
fd
(
a
)
t
.
end_fill
()
#眼白
t
.
fillcolor
(
"white"
)
t
.
penup
()
t
.
goto
(
13
,
125
)
t
.
setheading
(
0
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
13
,
360
)
t
.
end_fill
()
#眼珠
t
.
fillcolor
(
"sienna"
)
t
.
pencolor
(
"sienna"
)
t
.
penup
()
t
.
goto
(
12
,
133
)
t
.
setheading
(
0
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
5
,
360
)
t
.
end_fill
()
#鼻子
t
.
pencolor
(
"black"
)
t
.
fillcolor
(
"black"
)
t
.
penup
()
t
.
goto
(
-
55
,
133
)
t
.
begin_fill
()
t
.
pendown
()
t
.
fd
(
20
)
t
.
seth
(
-
120
)
t
.
fd
(
20
)
t
.
seth
(
120
)
t
.
fd
(
20
)
t
.
end_fill
()
#嘴
t
.
penup
()
t
.
goto
(
-
70
,
110
)
t
.
setheading
(
-
30
)
t
.
fillcolor
(
"red"
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
50
,
60
)
t
.
setheading
(
-
120
)
t
.
circle
(
-
100
,
15
)
t
.
circle
(
-
15
,
90
)
t
.
circle
(
-
100
,
15
)
t
.
end_fill
()
#四肢
#左臂
t
.
penup
()
t
.
goto
(
-
175
,
100
)
t
.
fillcolor
(
"black"
)
t
.
begin_fill
()
t
.
setheading
(
-
120
)
t
.
pendown
()
t
.
fd
(
100
)
t
.
setheading
(
-
110
)
t
.
circle
(
20
,
180
)
t
.
fd
(
30
)
t
.
circle
(
-
5
,
160
)
t
.
end_fill
()
#右臂
t
.
penup
()
t
.
goto
(
85
,
100
)
t
.
setheading
(
60
)
t
.
begin_fill
()
t
.
pendown
()
t
.
fd
(
100
)
t
.
setheading
(
70
)
t
.
circle
(
20
,
180
)
t
.
fd
(
30
)
t
.
circle
(
-
5
,
160
)
t
.
end_fill
()
#小红心
t
.
penup
()
t
.
pencolor
(
"red"
)
t
.
fillcolor
(
'red'
)
t
.
goto
(
105
,
200
)
t
.
begin_fill
()
t
.
pendown
()
t
.
circle
(
-
5
,
180
)
t
.
setheading
(
90
)
t
.
circle
(
-
5
,
180
)
t
.
setheading
(
-
120
)
t
.
fd
(
17
)
t
.
penup
()
t
.
goto
(
105
,
200
)
t
.
pendown
()
t
.
setheading
(
-
60
)
t
.
fd
(
17
)
t
.
end_fill
()
t
.
pencolor
(
"black"
)
t
.
fillcolor
(
"black"
)
#左腿
t
.
penup
()
t
.
goto
(
-
120
,
-
45
)
t
.
begin_fill
()
t
.
pendown
()
t
.
setheading
(
-
90
)
t
.
circle
(
-
140
,
20
)
t
.
circle
(
5
,
109
)
t
.
fd
(
30
)
t
.
circle
(
10
,
120
)
t
.
setheading
(
90
)
t
.
circle
(
-
140
,
10
)
t
.
end_fill
()
#右腿
t
.
penup
()
t
.
goto
(
30
,
-
45
)
t
.
begin_fill
()
t
.
pendown
()
t
.
setheading
(
-
90
)
t
.
circle
(
140
,
20
)
t
.
circle
(
-
5
,
109
)
t
.
fd
(
30
)
t
.
circle
(
-
10
,
120
)
t
.
setheading
(
90
)
t
.
circle
(
140
,
10
)
t
.
end_fill
()
#冰糖外壳
t
.
pensize
(
1
)
t
.
penup
()
t
.
goto
(
-
160
,
195
)
t
.
setheading
(
160
)
t
.
pendown
()
t
.
circle
(
-
40
,
230
)
t
.
setheading
(
30
)
t
.
circle
(
-
134
,
58
)
t
.
setheading
(
60
)
t
.
circle
(
-
40
,
215
)
t
.
setheading
(
-
60
)
t
.
fd
(
15
)
t
.
circle
(
2
,
200
)
t
.
setheading
(
65
)
t
.
fd
(
30
)
t
.
circle
(
-
25
,
180
)
t
.
fd
(
100
)
t
.
circle
(
2
,
25
)
t
.
circle
(
-
200
,
47
)
t
.
circle
(
2
,
60
)
t
.
circle
(
140
,
23
)
t
.
circle
(
-
2
,
90
)
t
.
setheading
(
180
)
t
.
fd
(
70
)
t
.
circle
(
-
2
,
90
)
t
.
fd
(
30
)
t
.
setheading
(
-
160
)
t
.
circle
(
-
100
,
35
)
t
.
setheading
(
-
90
)
t
.
fd
(
30
)
t
.
circle
(
-
2
,
90
)
t
.
fd
(
70
)
t
.
circle
(
-
2
,
90
)
t
.
setheading
(
60
)
t
.
circle
(
140
,
30
)
t
.
circle
(
2
,
45
)
t
.
circle
(
-
200
,
19
)
t
.
circle
(
2
,
130
)
t
.
fd
(
30
)
t
.
circle
(
-
25
,
180
)
t
.
fd
(
100
)
t
.
setheading
(
90
)
t
.
circle
(
-
200
,
30
)
#冰糖面罩
t
.
pensize
(
3
)
t
.
penup
()
t
.
goto
(
65
,
120
)
t
.
setheading
(
90
)
t
.
pendown
()
t
.
pencolor
(
"red"
)
a
=
1
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
#控制a的变化
a
=
a
+
0.25
t
.
lt
(
3
)
#向左转3度
t
.
fd
(
a
)
#向前走a的步长
else
:
a
=
a
-
0.25
t
.
lt
(
3
)
t
.
fd
(
a
)
t
.
pencolor
(
"orange"
)
t
.
penup
()
t
.
goto
(
66
,
120
)
t
.
pendown
()
a
=
1
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
a
=
a
+
0.255
t
.
lt
(
3
)
t
.
fd
(
a
)
else
:
a
=
a
-
0.255
t
.
lt
(
3
)
t
.
fd
(
a
)
t
.
pencolor
(
"green"
)
t
.
penup
()
t
.
goto
(
67
,
120
)
t
.
pendown
()
a
=
1
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
a
=
a
+
0.2555
t
.
lt
(
3
)
t
.
fd
(
a
)
else
:
a
=
a
-
0.2555
t
.
lt
(
3
)
t
.
fd
(
a
)
t
.
pencolor
(
"deep sky blue"
)
t
.
penup
()
t
.
goto
(
68
,
120
)
t
.
pendown
()
a
=
1
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
a
=
a
+
0.25955
t
.
lt
(
3
)
t
.
fd
(
a
)
else
:
a
=
a
-
0.25955
t
.
lt
(
3
)
t
.
fd
(
a
)
t
.
pencolor
(
"pink"
)
t
.
penup
()
t
.
goto
(
71
,
120
)
t
.
pendown
()
a
=
1
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
a
=
a
+
0.26
t
.
lt
(
3
)
t
.
fd
(
a
)
else
:
a
=
a
-
0.26
t
.
lt
(
3
)
t
.
fd
(
a
)
t
.
pencolor
(
"purple"
)
t
.
penup
()
t
.
goto
(
72
,
120
)
t
.
pendown
()
a
=
1
for
i
in
range
(
120
):
if
0
<=
i
<
30
or
60
<=
i
<
90
:
a
=
a
+
0.269
t
.
lt
(
3
)
t
.
fd
(
a
)
else
:
a
=
a
-
0.269
t
.
lt
(
3
)
t
.
fd
(
a
)
###五环
##t.penup()
##t.goto(-55,-10)
##t.pendown()
##t.pencolor("blue")
##t.circle(10)
##t.penup()
##t.goto(-40,-10)
##t.pendown()
##t.pencolor("black")
##t.circle(10)
##t.penup()
##t.goto(-25,-10)
##t.pendown()
##t.pencolor("red")
##t.circle(10)
##t.penup()
##t.goto(-50,-20)
##t.pendown()
##t.pencolor("yellow")
##t.circle(10)
##t.penup()
##t.goto(-30,-20)
##t.pendown()
##t.pencolor("green")
##t.circle(10)
# 直接贴图片
# t.register_shape("北京.gif") # 注册形状
t1
=
t
.
Turtle
()
# t1.shape("北京.gif")
t1
.
penup
()
t1
.
goto
(
-
45
,
-
10
)
#t.update()
t
.
done
()
yanchidp/dp.py
View file @
c5c8f3aa
...
@@ -26,7 +26,7 @@ class allEvent:
...
@@ -26,7 +26,7 @@ class allEvent:
print
(
"dp返回:"
+
p
.
text
)
print
(
"dp返回:"
+
p
.
text
)
# print("状态码:"+p.status_code)
# print("状态码:"+p.status_code)
print
(
"设备id:"
+
i
)
print
(
"设备id:"
+
i
)
#
print(p.url)
print
(
p
.
url
)
except
Exception
as
err
:
except
Exception
as
err
:
print
(
err
)
print
(
err
)
...
...
yanchidp/dp_diaoyong.py
View file @
c5c8f3aa
...
@@ -15,5 +15,3 @@ import time
...
@@ -15,5 +15,3 @@ import time
# allEvent().dp_imei(i, appkey)
# allEvent().dp_imei(i, appkey)
# # allEvent().dp_ios(i, appkey)
# # allEvent().dp_ios(i, appkey)
current_time_13
=
int
(
round
(
time
.
time
()
*
1000
))
print
(
current_time_13
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment