77from api import getLocalHostIP , getTime
88
99try :
10- import socks
1110 import wget
11+ import socks
12+ import requests
1213except :
1314 print ("Import module error! Please run \" pip install -r requirements.txt\" " )
1415 os ._exit (1 )
1516
1617localHostIP = 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-
3620def 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
7082def createSocket ():
0 commit comments