@@ -115,10 +115,11 @@ def _request(self, url, params=None, headers=None, method='GET'):
115
115
"""
116
116
# if method is "GET" use requests.get
117
117
if method == "GET" :
118
- resp = requests .get (url , data = params , headers = headers )
118
+ resp = requests .get (url , params = params , headers = headers )
119
119
# request method is "POST"
120
120
else :
121
- resp = requests .post (url , params , headers )
121
+ resp = requests .post (url , data = params , headers = headers )
122
+ print (resp .text )
122
123
# if response succeed and status code is 200 return json data
123
124
if resp and resp .status_code == 200 :
124
125
data = resp .json ()
@@ -133,6 +134,21 @@ def _request(self, url, params=None, headers=None, method='GET'):
133
134
else :
134
135
raise ValueError (resp .json ().get ('message' ))
135
136
137
+ def _check_header (self ):
138
+ if self .api_key :
139
+ headers = {
140
+ 'API-KEY' : self .api_key ,
141
+ }
142
+ elif self .access_token :
143
+ headers = {
144
+ 'Authorization' : 'JWT %s' % self .access_token
145
+ }
146
+ else :
147
+ headers = {}
148
+ # add user agent
149
+ headers ["User-Agent" ] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36"
150
+ return headers
151
+
136
152
def login (self ):
137
153
"""
138
154
please see: https://www.zoomeye.org/doc#login
@@ -167,9 +183,7 @@ def dork_search(self, dork, page=0, resource="host", facets=None):
167
183
search_api = self .search_api .format (resource )
168
184
if isinstance (facets , (tuple , list )):
169
185
facets = ',' .join (facets )
170
- headers = {'Authorization' : 'JWT %s' % self .access_token ,
171
- 'API-KEY' : self .api_key ,
172
- }
186
+ headers = self ._check_header ()
173
187
params = {'query' : dork , 'page' : page , 'facets' : facets }
174
188
resp = self ._request (search_api , params = params , headers = headers )
175
189
if resp and "matches" in resp :
@@ -207,10 +221,7 @@ def multi_page_search(self, dork, page=1, resource="host",
207
221
self .search_type = resource
208
222
search_api = self .search_api .format (resource )
209
223
210
- headers = {
211
- 'Authorization' : 'JWT %s' % self .access_token ,
212
- 'API-KEY' : self .api_key ,
213
- }
224
+ headers = self ._check_header ()
214
225
215
226
dork_data = []
216
227
all_data = []
@@ -246,9 +257,7 @@ def resources_info(self) -> dict:
246
257
see: https://www.zoomeye.org/doc#resources-info
247
258
:return: dict
248
259
"""
249
- headers = {'Authorization' : 'JWT %s' % self .access_token ,
250
- 'API-KEY' : self .api_key ,
251
- }
260
+ headers = self ._check_header ()
252
261
result = self ._request (self .user_info_api , headers = headers )
253
262
return result
254
263
@@ -301,9 +310,7 @@ def history_ip(self, ip):
301
310
result = {}
302
311
303
312
zoomeye_api = self .history_api .format (ip )
304
- headers = {'Authorization' : 'JWT %s' % self .access_token ,
305
- 'API-KEY' : self .api_key ,
306
- }
313
+ headers = self ._check_header ()
307
314
resp = self ._request (zoomeye_api , headers = headers )
308
315
if resp and 'data' in resp :
309
316
result = resp
@@ -321,7 +328,7 @@ def domain_search(self, q, source=0, page=1) -> list:
321
328
list
322
329
"""
323
330
search_api = self .search_api .format ('domain' )
324
- headers = { 'Authorization' : 'JWT %s' % self .access_token , 'API-KEY' : self . api_key }
331
+ headers = self ._check_header ()
325
332
request_result = self ._request (search_api , params = {"q" : q , "type" : source , "page" : page }, headers = headers )
326
333
if request_result :
327
334
self .raw_data = request_result # json字符串
@@ -336,7 +343,7 @@ def generate_dot(self, q, source=0, page=1):
336
343
"""
337
344
error_info = ''
338
345
search_api = self .search_api .format ('domain' )
339
- headers = { 'Authorization' : 'JWT %s' % self .access_token , 'API-KEY' : self . api_key }
346
+ headers = self ._check_header ()
340
347
try :
341
348
request_result = self ._request (search_api , params = {"q" : q , "type" : source , "page" : page }, headers = headers )
342
349
except Exception as e :
0 commit comments