mirror of
https://github.com/alexbers/mtprotoproxy.git
synced 2026-03-14 07:13:09 +00:00
cosmetical fixes
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
PORT = 3256
|
PORT = 3256
|
||||||
PREFER_IPV6 = False
|
|
||||||
|
|
||||||
# name -> secret (32 hex chars)
|
# name -> secret (32 hex chars)
|
||||||
USERS = {
|
USERS = {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ except ModuleNotFoundError:
|
|||||||
return pyaes.AESModeOfOperationCTR(key, ctr)
|
return pyaes.AESModeOfOperationCTR(key, ctr)
|
||||||
|
|
||||||
|
|
||||||
from config import PORT, PREFER_IPV6, USERS
|
from config import PORT, USERS
|
||||||
|
|
||||||
TG_DATACENTERS_V4 = [
|
TG_DATACENTERS_V4 = [
|
||||||
"149.154.175.50", "149.154.167.51", "149.154.175.100",
|
"149.154.175.50", "149.154.167.51", "149.154.175.100",
|
||||||
@@ -34,11 +34,9 @@ TG_DATACENTERS_V4 = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
TG_DATACENTERS_V6 = [
|
TG_DATACENTERS_V6 = [
|
||||||
"2001:0b28:f23d:f001:0000:0000:0000:000a",
|
"2001:0b28:f23d:f001::a", "2001:067c:04e8:f002::a",
|
||||||
"2001:067c:04e8:f002:0000:0000:0000:000a",
|
"2001:0b28:f23d:f003::a", "2001:067c:04e8:f004::a",
|
||||||
"2001:0b28:f23d:f003:0000:0000:0000:000a",
|
"2001:0b28:f23f:f005::a",
|
||||||
"2001:067c:04e8:f004:0000:0000:0000:000a",
|
|
||||||
"2001:0b28:f23f:f005:0000:0000:0000:000a",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
TG_DATACENTER_PORT = 443
|
TG_DATACENTER_PORT = 443
|
||||||
@@ -46,6 +44,8 @@ TG_DATACENTER_PORT = 443
|
|||||||
# disables tg->client trafic reencryption, faster but less secure
|
# disables tg->client trafic reencryption, faster but less secure
|
||||||
FAST_MODE = True
|
FAST_MODE = True
|
||||||
|
|
||||||
|
PREFER_IPV6 = False
|
||||||
|
|
||||||
STATS_PRINT_PERIOD = 600
|
STATS_PRINT_PERIOD = 600
|
||||||
READ_BUF_SIZE = 4096
|
READ_BUF_SIZE = 4096
|
||||||
|
|
||||||
@@ -98,12 +98,13 @@ async def handle_handshake(reader, writer):
|
|||||||
|
|
||||||
dc_idx = abs(int.from_bytes(decrypted[60:62], "little", signed=True)) - 1
|
dc_idx = abs(int.from_bytes(decrypted[60:62], "little", signed=True)) - 1
|
||||||
|
|
||||||
if dc_idx < 0 or dc_idx >= len(TG_DATACENTERS_V4) or dc_idx >= len(TG_DATACENTERS_V6):
|
|
||||||
continue
|
|
||||||
|
|
||||||
if PREFER_IPV6:
|
if PREFER_IPV6:
|
||||||
|
if not 0 <= dc_idx < len(TG_DATACENTERS_V6):
|
||||||
|
continue
|
||||||
dc = TG_DATACENTERS_V6[dc_idx]
|
dc = TG_DATACENTERS_V6[dc_idx]
|
||||||
else:
|
else:
|
||||||
|
if not 0 <= dc_idx < len(TG_DATACENTERS_V4):
|
||||||
|
continue
|
||||||
dc = TG_DATACENTERS_V4[dc_idx]
|
dc = TG_DATACENTERS_V4[dc_idx]
|
||||||
|
|
||||||
return encryptor, decryptor, user, dc, enc_key + enc_iv
|
return encryptor, decryptor, user, dc, enc_key + enc_iv
|
||||||
@@ -231,16 +232,18 @@ async def stats_printer():
|
|||||||
def print_tg_info():
|
def print_tg_info():
|
||||||
try:
|
try:
|
||||||
with urllib.request.urlopen('https://ifconfig.co/ip') as f:
|
with urllib.request.urlopen('https://ifconfig.co/ip') as f:
|
||||||
if f.status != 200: raise Exception("Invalid status code")
|
if f.status != 200:
|
||||||
|
raise Exception("Invalid status code")
|
||||||
my_ip = f.read().strip()
|
my_ip = f.read().strip()
|
||||||
except:
|
except Exception:
|
||||||
my_ip = 'YOUR_IP'
|
my_ip = 'YOUR_IP'
|
||||||
|
|
||||||
for user, secret in sorted(USERS.items(), key=lambda x: x[0]):
|
for user, secret in sorted(USERS.items(), key=lambda x: x[0]):
|
||||||
params = {
|
params = {
|
||||||
"server": my_ip, "port": PORT, "secret": secret
|
"server": my_ip, "port": PORT, "secret": secret
|
||||||
}
|
}
|
||||||
print("{}: tg://proxy?{}".format(user, urllib.parse.urlencode(params, safe=':')), flush=True)
|
params_encodeded = urllib.parse.urlencode(params, safe=':')
|
||||||
|
print("{}: tg://proxy?{}".format(user, params_encodeded, flush=True))
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|||||||
Reference in New Issue
Block a user