Skip to content

Commit 0143842

Browse files
authored
对输入域名进行简单的过滤,修改报错提示
域名需要包含.字符
1 parent be80e44 commit 0143842

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

ICP-Checker.py

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from openpyxl.workbook import Workbook
99
from openpyxl.styles import Alignment
1010

11-
class get_require_info(object):
11+
class get_required_info(object):
1212
"""
1313
获取必要的Cookie、Token,以及各类的POST请求由这里的post_tool()完成,
1414
"""
@@ -24,37 +24,37 @@ def __init__(self) -> None:
2424

2525
def post_tool(self, url, data, json, header):
2626
try:
27-
response = post(url, data=data, json=json, headers=header, timeout=2)
27+
response = post(url, data=data, json=json, headers=header, timeout=10)
2828
response_code = response.json()['code']
2929
response_msg = response.json()['success']
3030
if response_code == 200 and response_msg is True:
3131
return response
3232
elif response_code == 200 and response_msg is False: # 验证错误,需要重新获取验证图片
3333
return 'pic_check_fail'
3434
elif response_code == 401: # Token 过期
35-
print(f"{' 刷新Token ':-^57}")
36-
return self.get_token()
35+
print(f"{' 刷新Token请重试 ':-^54}")
36+
self.get_token()
37+
return -1
3738
elif response_code == (500 or 501):
3839
return 'server_error'
3940
elif response.status_code == 403: # WAF 触发,只有这个会正确返回状态码,其他的错误状态码响应的是200
4041
print(f"{' 触发防火墙了,过几分钟再试吧 ':*^50}")
4142
exit()
4243
except Exception as err:
43-
return f'error:{err}'
44+
return print(f'error:{err}')
4445

4546
def get_cookie(self):
4647
cookie = get(url=self.base_header['Origin'], headers={'User-Agent':self.base_header['User-Agent']}, timeout=1)
4748
self.base_header.update({'Cookie': cookie.headers['Set-Cookie'].split(';')[0]})
4849

4950
def get_token(self):
50-
print(f"\n{' 获取Token中,服务器响应时快时慢 ':-^46}")
51+
print(f"\n{' 获取必要参数 ':-^53}\n")
5152
time_stamp = round(time() * 1000)
5253
auth_key = md5(f'testtest{time_stamp}'.encode('utf-8')).hexdigest()
5354
auth_data = {'authKey': auth_key, 'timeStamp': time_stamp}
5455
token_request = self.post_tool(self.auth_url, auth_data, "", self.base_header)
5556
token_result = token_request.json()['params']['bussiness']
5657
self.base_header.update({'Token': token_result, 'Accept':'application/json'})
57-
print(f"\n{' 已获得Token ':-^56}\n")
5858

5959
class file_tool(object):
6060
"""
@@ -71,7 +71,7 @@ def file_writer(self, file_path, file_name, file, wr_mode, wr_type):
7171
self.file_content = f.read()
7272
return self.file_content
7373

74-
class query_info(get_require_info, file_tool):
74+
class query_info(get_required_info, file_tool):
7575
"""
7676
输入过滤,只对中文输入做过滤,英文域名由于有些域名不在可备案列表内也能备案,所以不做过滤了
7777
"""
@@ -82,18 +82,22 @@ def __init__(self) -> None:
8282
def regular_input(self):
8383
print(f"{' 输入 域名/备案号/完整公司名 以查询备案信息 ':-^40}\n")
8484
info_input = input('查询对象:').replace(' ', '').replace('https://www.', '').replace('http://www.', '').replace('http://', '').replace('www.', '')
85-
if info_input == '':
86-
print(f"\n{' 请输入正确域名 ':*^52}\n")
87-
return -1
88-
elif '\u4e00' <= info_input <= '\u9fff':
85+
if '\u4e00' <= info_input <= '\u9fff':
8986
input_result = re.sub('[^\\u4e00-\\u9fff-A-Za-z0-9,-.()《》—()]', "", info_input) # 中文输入混入的特殊符号,只允许:-—《》()().
90-
else:
87+
elif '.' in info_input:
9188
input_result = info_input
92-
self.query_text = {'pageNum': 1, 'pageSize': 40, 'serviceType': 1, 'unitName': input_result} #serviceType: 1:网站 6:APP 7:小程序 8:快应用
89+
elif info_input == '' or '.' not in info_input: # 空值和只输入英文字母没有域名的.则返回错误
90+
print(f"\n{' 请输入正确域名 ':*^52}\n")
91+
return -1
92+
self.query_text = {'pageNum': 1, 'pageSize': 100, 'serviceType': 1, 'unitName': input_result} #serviceType: 1:网站 6:APP 7:小程序 8:快应用
9393

9494
def query_information(self):
9595
print(f"\n{' 查询中 ':-^56}")
96-
icp_info = super().post_tool(self.query_url, '', self.query_text, self.base_header).json()['params']
96+
try:
97+
icp_info = super().post_tool(self.query_url, '', self.query_text, self.base_header).json()['params']
98+
except:
99+
print(f"{' 查询出错,请重试 ':-^51}\n")
100+
return -1
97101
total_domains = icp_info['total']
98102
total_pages = icp_info['lastPage']
99103
end_row = icp_info['endRow']
@@ -124,7 +128,11 @@ def query_information(self):
124128
if icp_info['isLastPage'] is True:
125129
break
126130
else:
127-
icp_info = super().post_tool(self.query_url, '', self.query_text, self.base_header).json()['params']
131+
try:
132+
icp_info = super().post_tool(self.query_url, '', self.query_text, self.base_header).json()['params']
133+
except:
134+
print(f"{' 查询出错,请重试 ':-^51}\n")
135+
return -1
128136
end_row = icp_info['endRow']
129137
sleep(3) # 翻页需要慢一点,否则大概率被WAF拦截
130138

@@ -182,19 +190,21 @@ def write_data(self):
182190
try:
183191
self.work_book.save(self.excel_file_path)
184192
except PermissionError:
185-
return print("** 备案信息登记表格已打开,无法写入文件。如需写入,请关闭文件后重新执行! **\n")
193+
print("** 备案信息登记表格已打开,请关闭后按任意键执行录入! **\n")
194+
os.system('pause')
195+
self.set_format()
186196
return print(f"{' 查询结果保存在:' + str(self.excel_file_path) + ' ':*^47}\n")
187197

188198
if __name__ == '__main__':
189199
"""
190-
各类可预期的报错,返回为-1
200+
各类可预期的报错,返回为 -1
191201
"""
192202
os.environ['no_proxy'] = '*'
193203
query_target = query_info()
194-
requirement_info = get_require_info()
204+
requirement_info = get_required_info()
195205
save_data = excel_tool()
196206
print(f"\n{' 项目地址:https://github.com/wongzeon/ICP-Checker ':-^54}\n")
197-
print(f"{' V2.2.0 2023/11/23 仅用于学习研究,不得用于商业/非法用途 ':-^41}")
207+
print(f"{' V2.2.1 2023/11/23 仅用于学习研究,不得用于商业/非法用途 ':-^41}")
198208
requirement_info.get_cookie()
199209
token = requirement_info.get_token()
200210
exe_num = 0

0 commit comments

Comments
 (0)