Ошибка при подключени к i2p socket серверу через i2p в python
сервер поднимает i2p сокет и ждёт соединения, клиент должен подключится по i2p аддресу, но клиент пишет, что:
python3 client.py
Введите порт для локального сервера:678
step 2
step 3
step 4
Traceback (most recent call last):
File "client.py", line 11, in <module>
i2plo.connect(("q5vc65lf345bakn6z55csafm2oo7hgnuxqzxoyjoj5hhasmjf2ga.b32.i2p", 2389))
File "/home/q/.local/lib/python3.7/site-packages/i2p/socket/sam/simple.py", line 198, in check_connect
return func(self, *args, **kwargs)
File "/home/q/.local/lib/python3.7/site-packages/i2p/socket/sam/simple.py", line 164, in check_state
return func(self, *args_inner, **kwargs_inner)
File "/home/q/.local/lib/python3.7/site-packages/i2p/socket/sam/simple.py", line 174, in check_type
return func(self, *args, **kwargs)
File "/home/q/.local/lib/python3.7/site-packages/i2p/socket/sam/simple.py", line 260, in connect
dest = self.lookup(addr)
File "/home/q/.local/lib/python3.7/site-packages/i2p/socket/sam/simple.py", line 594, in lookup
raise pysocket.herror(errno.EAGAIN, "name not resolved: {}".format(name))
socket.herror: [Errno 11] name not resolved: q5vc65lf345bakn6z55csafm2oo7hgnuxqzxoyjoj5hhasmjf2ga.b32.i2p
В этом скрипте используется библиотека i2p.socket.
мой клиент:
from i2p import socket
#sock = socket.socket()
i2plo = socket.socket()
portlol = int(input('Введите порт для локального сервера:'))
#sock.bind(('', portlol))
print('step 2')
#sock.listen()
print('step 3')
#conn, addr = sock.accept()
print('step 4')
i2plo.connect(("q5vc65lf345bakn6z55csafm2oo7hgnuxqzxoyjoj5hhasmjf2ga.b32.i2p", 2389))
print('step 5')
while(True):
while(True):
login = str(input('Введите логин:'))
if (' ' in login):
print('Не испуользуйте пробел.')
else:
break
while(True):
password = str(input('Введите пароль:'))
if (' ' in password):
print('Не испуользуйте пробел.')
else:
break
while(True):
secretkey = str(input('Введите секретный ключ:'))
if (' ' in secretkey):
print('Не испуользуйте пробел.')
else:
break
#test auth
#i2plo.send(b"/login "+bytes(login, 'utf-8')+bytes(password, 'utf-8')+bytes(secretkey, 'utf-8'))
#if (i2plo.recv(1024) == 'ok'):
# break
#else:
# print('Неверный логин, пароль или секретный ключ.')
break
while True:
i2plo.send(b'hello!')
getterl = i2plo.recv(1024)
print(getterl)
import os
from i2p import socket
def get_i2p_server_address():
source = os.popen('curl -fsSL 127.0.0.1:7070/?page=i2p_tunnels').read()
return str(source.split('⇐')).split('<br>')[-3].split(' ')[5]
i2p_addres = get_i2p_server_address()
print('Your i2p server adress: ',i2p_addres)
#основной сокет
print('step 1')
sock = socket.socket()
print('step 2')
sock.bind(('', 2389))
print('step 3')
sock.listen(5)
print('step 4')
conn, addr = sock.accept()
print('step 5')
while True:
data = conn.recv(1024)
if not data:
break
conn.send(data.upper())
conn.close()