Skip to content

Commit 880e76b

Browse files
committed
fix #432
1 parent 67cd7f6 commit 880e76b

2 files changed

Lines changed: 35 additions & 46 deletions

File tree

dnsrecon/lib/bingenum.py

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,10 @@
1515

1616
import re
1717
import time
18-
import urllib.request
1918

20-
__name__ = 'bingenum'
21-
22-
url_opener = urllib.request.FancyURLopener
19+
import httpx
2320

24-
25-
class AppURLopener(url_opener):
26-
version = 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)'
21+
__name__ = 'bingenum'
2722

2823

2924
def scrape_bing(dom):
@@ -48,24 +43,17 @@ def scrape_bing(dom):
4843
'140',
4944
'150',
5045
]
51-
urllib._urlopener = AppURLopener()
5246

53-
for n in searches:
54-
url = 'https://www.bing.com/search?q=domain%3A' + dom + '&qs=n&first=' + n
55-
req = urllib.request.Request(
56-
url,
57-
data=None,
58-
headers={
59-
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'
60-
},
61-
)
47+
headers = {'User-Agent': 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)'}
6248

63-
sock = urllib.request.urlopen(req, timeout=10)
64-
data = sock.read().decode('utf-8')
65-
safe_dom = re.escape(dom)
66-
results.extend(re.findall(r'([a-zA-Z0-9\-.]+' + safe_dom + ')/?', data))
67-
sock.close()
68-
time.sleep(5)
49+
with httpx.Client(headers=headers) as client:
50+
for n in searches:
51+
url = 'https://www.bing.com/search?q=domain%3A' + dom + '&qs=n&first=' + n
52+
response = client.get(url, timeout=10.0)
53+
data = response.text
54+
safe_dom = re.escape(dom)
55+
results.extend(re.findall(r'([a-zA-Z0-9\-.]+' + safe_dom + ')/?', data))
56+
time.sleep(5)
6957

7058
return unique(results)
7159

dnsrecon/lib/yandexenum.py

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,11 @@
1717

1818
import re
1919
import time
20-
import urllib
21-
import urllib.request
2220

21+
import httpx
2322
from loguru import logger
2423

2524
__name__ = 'yandexenum'
26-
url_opener = urllib.request.FancyURLopener
27-
28-
29-
class AppURLopener(url_opener):
30-
version = """Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
31-
(KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.246"""
3225

3326

3427
def scrape_yandex(dom):
@@ -37,25 +30,33 @@ def scrape_yandex(dom):
3730
"""
3831
results = []
3932
searches = ['1', '2', '3', '4', '5', '10', '20', '30']
40-
urllib._urlopener = AppURLopener()
4133

42-
for _ in searches:
43-
url = 'https://yandex.com/search/?text=site%3A' + dom
44-
try:
45-
sock = urllib.request.urlopen(url, timeout=10)
46-
data = sock.read().decode('utf-8')
47-
sock.close()
48-
except Exception as e:
49-
logger.error(e)
50-
return []
34+
headers = {
35+
'User-Agent': (
36+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) '
37+
'AppleWebKit/537.36 (KHTML, like Gecko) '
38+
'Chrome/42.0.2311.135 Safari/537.36 Edge/12.246'
39+
)
40+
}
41+
42+
with httpx.Client(headers=headers) as client:
43+
for _ in searches:
44+
url = 'https://yandex.com/search/?text=site%3A' + dom
45+
try:
46+
response = client.get(url, timeout=10.0)
47+
data = response.text
48+
except Exception as e:
49+
logger.error(e)
50+
return []
5151

52-
if re.search('enter_captcha_value', data):
53-
logger.error("Yandex has detected the search as 'bot activity, stopping search...")
54-
return unique(results)
52+
if re.search('enter_captcha_value', data):
53+
logger.error("Yandex has detected the search as 'bot activity, stopping search...")
54+
return unique(results)
5555

56-
results.extend(re.findall(r'([a-zA-Z0-9\-\.]+' + dom + ')/?', data))
56+
safe_dom = re.escape(dom)
57+
results.extend(re.findall(r'([a-zA-Z0-9\-\.]+' + safe_dom + ')/?', data))
5758

58-
time.sleep(10)
59+
time.sleep(10)
5960

6061
return unique(results)
6162

0 commit comments

Comments
 (0)