Ein Proxy kann auf IPv6 lauschen und dabei eine Verbindung zu einem Telegram-Server in einer anderen Adressfamilie transportieren. Behandle den Proxy-Endpunkt und den endgültigen Telegram-Endpunkt getrennt.

Für Telethon 1.45, wenn die dokumentierte Abhängigkeit python-socks[asyncio] in der Umgebung der Anwendung verfügbar ist:

from telethon import TelegramClient

client = TelegramClient(
    'existing-session', api_id, api_hash,
    proxy={
        'proxy_type': 'socks5',
        'addr': '2001:db8::10',
        'port': 1080,
        'rdns': True,
    },
)

Ersetze die IPv6-Adresse und den Port aus der Dokumentation durch den tatsächlichen Listener. Das Adressfeld ist ein Literal ohne Klammern, weil der Port bereits ein eigener Wert ist. Klammern sind nötig, wenn eine IPv6-Adresse in eine URL-Authority eingebettet wird.

Füge bei Bedarf die Felder username und password für ein SOCKS-Konto hinzu. Ein SOCKS5-Konto ist von Telegrams API ID, API hash und Session getrennt.

use_ipv6=True steuert, welche Telegram-Serveradresse Telethon wählt. Es ist nicht der Schalter, der einen IPv6-Proxy-Hostnamen in eine gültige Lauschadresse verwandelt.

Prüfe das Backend, das dem tatsächlichen Python-Interpreter zur Verfügung steht, wenn eine ältere Umgebung bei IPv6 scheitert. Ein Import in einer anderen virtuellen Umgebung ändert diesen Prozess nicht. MTProto-Proxy-Verbindungsmodi verwenden ein anderes Tupel mit einem Secret; das ist eine andere Konfiguration.

Ähnliche Artikel