mirror of https://github.com/OWASP/Nettacker.git
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
import socket
|
|
|
|
|
|
def getaddrinfo(*args):
|
|
"""
|
|
same getaddrinfo() used in socket except its resolve addresses with socks proxy
|
|
|
|
Args:
|
|
args: *args
|
|
|
|
Returns:
|
|
getaddrinfo
|
|
"""
|
|
return [(socket.AF_INET, socket.SOCK_STREAM, 6, "", (args[0], args[1]))]
|
|
|
|
|
|
def set_socks_proxy(socks_proxy):
|
|
if socks_proxy:
|
|
import socks
|
|
|
|
socks_version = socks.SOCKS5 if socks_proxy.startswith("socks5://") else socks.SOCKS4
|
|
socks_proxy = socks_proxy.split("://")[1] if "://" in socks_proxy else socks_proxy
|
|
if "@" in socks_proxy:
|
|
socks_username = socks_proxy.split(":")[0]
|
|
socks_password = socks_proxy.split(":")[1].split("@")[0]
|
|
socks.set_default_proxy(
|
|
socks_version,
|
|
str(socks_proxy.rsplit("@")[1].rsplit(":")[0]), # hostname
|
|
int(socks_proxy.rsplit(":")[-1]), # port
|
|
username=socks_username,
|
|
password=socks_password,
|
|
)
|
|
else:
|
|
socks.set_default_proxy(
|
|
socks_version,
|
|
str(socks_proxy.rsplit(":")[0]), # hostname
|
|
int(socks_proxy.rsplit(":")[1]), # port
|
|
)
|
|
return socks.socksocket, getaddrinfo
|
|
else:
|
|
return socket.socket, socket.getaddrinfo
|