@Aleksandeer

Почему не работает прокси в Pyrogram?

В документации четко прописано как использовать прокси

from pyrogram import Client

 proxy = {
     "scheme": "socks5",  # "socks4", "socks5" and "http" are supported
     "hostname": "11.22.33.44",
     "port": 1234,
     "username": "username",
     "password": "password"
 }

app = Client("my_account", proxy=proxy)

app.run()


Я использую функции по созданию именно таких прокси которые требует Pyrogram
def parse_proxy_string(proxy_string):
    parts = proxy_string.split('@')
    credentials = parts[0].split(':')
    ip_port = parts[1].split(':')

    username = credentials[0]
    password = credentials[1]
    ip = ip_port[0]
    port = int(ip_port[1])

    return {
        "scheme": "http",
        "hostname": ip,
        "port": port,
        "username": username,
        "password": password
    }


Вот создание сессии
async def connect_clients(bot: Bot, accounts: list):
    clients = list()
    for account in accounts:
        proxy_info = parse_proxy_string('username:password@ip:port')
        client = PyrogramClient(f'sessions/{account.PHONE_NUMBER}', proxy=proxy_info)

        if not client.is_connected:
            try:
                await client.start()
                clients.append(client)

            except sqlite3.OperationalError:
                await bot.send_message(account.USER_ID,
                                       text=f'Юзербот <b>{account.PHONE_NUMBER}</b> не смог запуститься',
                                       parse_mode='html')
            except AttributeError:
                pass

    await idle()

    for account in clients:
        await account.stop()

    return clients

Вот мой принт
{'scheme': 'http', 'hostname': ip', 'port': poer, 'username': 'username', 'password': 'port'}


PS: Прокси рабочие, ошибок никаких не выдает и так же, сессия подключается с моей сети
  • Вопрос задан
  • 476 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
не вникал, но сильгно сомневаючь что телега использует
"scheme": "http",

возможно, Вы последние 10 лет отсутствовали,но http в сплошь и рядом секьюрном - нет

создайте на том же сервере socks прокси и все получится

а если сервер не ваш - вообще нет смысла обсуждать что там "рабочее", вы гне контролируете что и как там работает , забанен ли адрес за использование другими и т.п.
Ответ написан
@flexyyyapk
Я не знаю как, но у меня получилось
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы