Skip to content

Commit 409737a

Browse files
WillowSauceRWillowSauceR
authored andcommitted
优化代理处理
1 parent 3cfdb01 commit 409737a

File tree

2 files changed

+36
-24
lines changed

2 files changed

+36
-24
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
## send.py
1414

15-
### 使用方法: `python3 send.py [IP] [端口] [载体包文件] [次数] [间隔:秒] [使用代理] [自动显示MOTD]`
15+
### 使用方法: `python3 send.py [IP] [端口] [载体包文件] [次数] [间隔:秒]` [自动显示MOTD]` [使用代理] [代理的国家,如cn, ru, us]`
1616

1717
#### 描述: 发包复现工具, 需要一个内含byte数据的文件,一般为.dmp后缀名
1818

send.py

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,50 +7,38 @@
77
from api import getLocalHostIP, getTime
88

99
try:
10-
import socks
1110
import wget
11+
import socks
12+
import requests
1213
except:
1314
print("Import module error! Please run \"pip install -r requirements.txt\"")
1415
os._exit(1)
1516

1617
localHostIP = getLocalHostIP()
1718

1819

19-
def getProxy() -> list:
20-
if not os.path.exists(r"socks5.txt"):
21-
print(f"[{getTime()}] Downloading proxy list...")
22-
wget.download(
23-
"https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks5.txt")
24-
print(f"")
25-
print(f"[{getTime()}] Proxy list downloaded!")
26-
27-
with open("socks5.txt", "r") as file:
28-
socksList = file.readlines()
29-
randomIndex = random.randint(0, len(socksList) - 1)
30-
proxy = socksList[randomIndex]
31-
proxyIP, proxyPort = proxy.rsplit(':', 1)
32-
#print(proxyIP, ":", proxyPort)
33-
return proxyIP, int(proxyPort)
34-
35-
3620
def getOptions():
3721
try:
3822
target = sys.argv[1]
3923
port = sys.argv[2]
4024
file = sys.argv[3]
4125
loops = sys.argv[4]
4226
interval = sys.argv[5]
43-
proxyUsed = sys.argv[6]
44-
isDisplayMotd = sys.argv[7]
27+
isDisplayMotd = sys.argv[6]
28+
proxyUsed = sys.argv[7]
4529
except:
4630
target = input("Target(IP/Domain): ")
4731
port = input("Port(Number): ")
4832
file = input("File(Path): ")
4933
loops = input("Loops(Number): ")
5034
interval = input("Interval(sec): ")
51-
proxyUsed = input("Proxy(y/n): ")
5235
isDisplayMotd = input("Display Motd(y/n): ")
36+
proxyUsed = input("Proxy(y/n): ")
5337
if proxyUsed == "y":
38+
try:
39+
proxyCountry = sys.argv[8]
40+
except:
41+
proxyCountry = input("ProxyCountry(like cn, ru, us): ")
5442
print(f"[{getTime()}] Proxy mode is under development and deprecated!")
5543
proxyUsed = True
5644
else:
@@ -61,10 +49,34 @@ def getOptions():
6149
else:
6250
isDisplayMotd = False
6351
print()
64-
return target, int(port), file, int(loops), float(interval), proxyUsed, isDisplayMotd
52+
return target, int(port), file, int(loops), float(interval), proxyUsed, isDisplayMotd, proxyCountry
53+
54+
55+
target, port, file, loops, interval, proxyUsed, isDisplayMotd, proxyCountry = getOptions()
6556

6657

67-
target, port, file, loops, interval, proxyUsed, isDisplayMotd = getOptions()
58+
def getProxy() -> list:
59+
try:
60+
print(f"[{getTime()}] Trying to get proxy data from api...")
61+
proxyInfo = requests.get(
62+
f"https://www.proxyscan.io/api/proxy?last_check=3600&uptime=&ping=&limit=1&type=socks5&format=json&country={proxyCountry}").json()
63+
proxyIP = proxyInfo[0]['Ip']
64+
proxyPort = proxyInfo[0]['Port']
65+
return proxyIP, int(proxyPort)
66+
except:
67+
if not os.path.exists(r"socks5.txt"):
68+
print(f"[{getTime()}] Request api failed. Downloading proxy list...")
69+
wget.download(
70+
"https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks5.txt")
71+
print(f"")
72+
print(f"[{getTime()}] Proxy list downloaded!")
73+
with open("socks5.txt", "r") as file:
74+
socksList = file.readlines()
75+
randomIndex = random.randint(0, len(socksList) - 1)
76+
proxy = socksList[randomIndex]
77+
proxyIP, proxyPort = proxy.rsplit(':', 1)
78+
#print(proxyIP, ":", proxyPort)
79+
return proxyIP, int(proxyPort)
6880

6981

7082
def createSocket():

0 commit comments

Comments
 (0)