|
34 | 34 |
|
35 | 35 | class TCP(socks.socksocket): |
36 | 36 | def __init__(self, ipv6: bool, proxy: dict): |
37 | | - super().__init__(family=socket.AF_INET6 if ipv6 else socket.AF_INET) |
| 37 | + if proxy.get("enabled", False): |
| 38 | + hostname = proxy.get("hostname", None) |
| 39 | + port = proxy.get("port", None) |
38 | 40 |
|
39 | | - self.settimeout(10) |
40 | | - self.proxy_enabled = proxy.get("enabled", False) |
| 41 | + try: |
| 42 | + socket.inet_aton(hostname) |
| 43 | + except socket.error: |
| 44 | + super().__init__(socket.AF_INET6) |
| 45 | + else: |
| 46 | + super().__init__(socket.AF_INET) |
41 | 47 |
|
42 | | - if proxy and self.proxy_enabled: |
43 | 48 | self.set_proxy( |
44 | 49 | proxy_type=socks.SOCKS5, |
45 | | - addr=proxy.get("hostname", None), |
46 | | - port=proxy.get("port", None), |
| 50 | + addr=hostname, |
| 51 | + port=port, |
47 | 52 | username=proxy.get("username", None), |
48 | 53 | password=proxy.get("password", None) |
49 | 54 | ) |
50 | 55 |
|
51 | | - log.info("Using proxy {}:{}".format( |
52 | | - proxy.get("hostname", None), |
53 | | - proxy.get("port", None) |
54 | | - )) |
| 56 | + log.info("Using proxy {}:{}".format(hostname, port)) |
| 57 | + else: |
| 58 | + super().__init__( |
| 59 | + socket.AF_INET6 if ipv6 |
| 60 | + else socket.AF_INET |
| 61 | + ) |
| 62 | + |
| 63 | + self.settimeout(10) |
55 | 64 |
|
56 | 65 | def close(self): |
57 | 66 | try: |
|
0 commit comments