n
Size: a a a
n
n
n
n
⟁ᴡ
⟁ᴡ
⟁ᴡ
n
return to_instance or self.__class__()
⟁ᴡ
n
⟁ᴡ
from telethon.sessions import StringSession
p(dir(StringSession))
Result:list
- '__abstractmethods__'
- '__class__'
- '__delattr__'
- '__dict__'
- '__dir__'
- '__doc__'
- '__eq__'
- '__format__'
- '__ge__'
- '__getattribute__'
- '__gt__'
- '__hash__'
- '__init__'
- '__init_subclass__'
- '__le__'
- '__lt__'
- '__module__'
- '__ne__'
- '__new__'
- '__reduce__'
- '__reduce_ex__'
- '__repr__'
- '__setattr__'
- '__sizeof__'
- '__slots__'
- '__str__'
- '__subclasshook__'
- '__weakref__'
- '_abc_impl'
- '_entities_to_rows'
- '_entity_to_row'
- '_entity_values_to_row'
- 'auth_key'
- 'cache_file'
- 'clone'
- 'close'
- 'dc_id'
- 'decode'
- 'delete'
- 'encode'
- 'get_entity_rows_by_id'
- 'get_entity_rows_by_name'
- 'get_entity_rows_by_phone'
- 'get_entity_rows_by_username'
- 'get_file'
- 'get_input_entity'
- 'get_update_state'
- 'list_sessions'
- 'port'
- 'process_entities'
- 'save'
- 'server_address'
- 'set_dc'
- 'set_update_state'
- 'takeout_id'
⟁ᴡ
from telethon.sessions import StringSession
(StringSession.save(client.session))
Result:1AZWaWdcBuxyFOpPcZKneeHSf1XDe2ndyXwczrScowaJgnEKQ7_5lbolwAM7A7zVsMVP6dVDZSOqhEGUUR-6C5WuBZOzghADkePN3Gh-ROgEKyPVw4nUBDr7kOgmThe2kj_wGFe0Vx_iGktgv4wG_H27U2zHPDUJWCE93AqDhfMzLtMclI_-M0B69liieYOSiQhKXwI3EbJ0LM90nYgBrLz27X2Df_ACMqKXmCsD9vTEgjzJNSmIK_wrKmf-JLMV9swkSkUZ73EY3xyXe4SNgs7JTaur1Rtc3m5Uv-WqNpq71utHt0TsrlNrFnWMH8iXspX2Vxn_5QG0VlyFYx0-kupz8QLffP2I=
n
n
session_string = '1BVtsOHsBu2Qw7uxe_Nsgr7e2qnGV1a_HreodKfCM_ncR5nQz0_KDPrvHCeUDGVWMXTOGmHx3UgwRasiUg8PdKTidPKzJgsYGl7xE6MS4Bbt749n9Cd1m1xOBA_RhoDaxGBTQsV81dwQVFaX6aAjqkEFcbmrwaFbuUr1SgjqiGD6Ti5WANg_WM8mdxgvjp7o0ORV_Bk5CMnv0aoWPhI4pf_hGGrmmXKuRcxTNxoy2Sq33CLbbPQGkk1SQ4e-W1LMpQtxMzPHh1Ui6_mWnkeOjI-802dlBWWqx5kryLsgqWCcnYvZ_GnRuTZBe7KBGIJ4OM3wEEBRHuN8g9H2sRSxuWQGw7YgrwL0='
s = StringSession(session_string)
print(s.dc_id, s.port, s.server_address, s.auth_key.key)
n
⟁ᴡ
class StringSession(MemorySession):
"""
This minimal session file can be easily saved and loaded as a string.
It is thought to be used where you don't want to create any on-disk
files but would still like to be able to save and load existing sessions
by other means.
"""
def __init__(self, string=None):
super().__init__()
if string and string[0] != CURRENT_VERSION:
raise ValueError('Not a valid string')
ip_len = 4 if len(string) == 353 else 16
self._dc_id, ip, self._port, key = struct.unpack(
'>B{}sH256s'.format(ip_len), base64.urlsafe_b64decode(string[1:]))
self._server_address = ipaddress.ip_address(ip).compressed
if any(key):
self._auth_key = AuthKey(key)
def save(self):
if not self._auth_key:
return ''
ip = ipaddress.ip_address(self._server_address).packed
return CURRENT_VERSION + base64.urlsafe_b64encode(struct.pack(
'>B{}sH256s'.format(len(ip)),
self._dc_id,
ip,
self._port,
self._auth_key.key
)).decode('ascii')
n
import struct
import ipaddress
from telethon.sessions import StringSession
_STRUCT_PREFORMAT = '>B{}sH256s'
session_string = '1BVtsOHsBu2Qw7uxe_Nsgr7e2qnGV1a_HreodKfCM_ncR5nQz0_KDPrvHCeUDGVWMXTOGmHx3UgwRasiUg8PdKTidPKzJgsYGl7xE6MS4Bbt749n9Cd1m1xOBA_RhoDaxGBTQsV81dwQVFaX6aAjqkEFcbmrwaFbuUr1SgjqiGD6Ti5WANg_WM8mdxgvjp7o0ORV_Bk5CMnv0aoWPhI4pf_hGGrmmXKuRcxTNxoy2Sq33CLbbPQGkk1SQ4e-W1LMpQtxMzPHh1Ui6_mWnkeOjI-802dlBWWqx5kryLsgqWCcnYvZ_GnRuTZBe7KBGIJ4OM3wEEBRHuN8g9H2sRSxuWQGw7YgrwL0='
string = session_string[1:]
ip_len = 4 if len(string) == 352 else 16
dc_id, ip, port, key = struct.unpack(_STRUCT_PREFORMAT.format(ip_len), StringSession.decode(string))
server_address = ipaddress.ip_address(ip).compressed
print(dc_id, server_address, port, key)
n
session_string = '1BVtsOHsBu2Qw7uxe_Nsgr7e2qnGV1a_HreodKfCM_ncR5nQz0_KDPrvHCeUDGVWMXTOGmHx3UgwRasiUg8PdKTidPKzJgsYGl7xE6MS4Bbt749n9Cd1m1xOBA_RhoDaxGBTQsV81dwQVFaX6aAjqkEFcbmrwaFbuUr1SgjqiGD6Ti5WANg_WM8mdxgvjp7o0ORV_Bk5CMnv0aoWPhI4pf_hGGrmmXKuRcxTNxoy2Sq33CLbbPQGkk1SQ4e-W1LMpQtxMzPHh1Ui6_mWnkeOjI-802dlBWWqx5kryLsgqWCcnYvZ_GnRuTZBe7KBGIJ4OM3wEEBRHuN8g9H2sRSxuWQGw7YgrwL0='
s = StringSession(session_string)
print(s.dc_id, s.port, s.server_address, s.auth_key.key)
⟁ᴡ
from telethon.crypto import AuthKey
from telethon.sessions import StringSession
p(StringSession.auth_key, client.session.auth_key)
Result:property:
AuthKey:
aux_hash: 14608300270471690784
key: <…>
key_id: 10223561288105183757