Форум сайта python.su
Добрый день!
Помогите решить задачу. Имеется сервер, работает по tcp, живет на 46.61.204.66:40039. При подключении клиента отправляет ему строку “200 welcome home”. Клиент должен отправить логин и пароль в строке вот такого вида - “login 11111 88888888”. Если логин/пароль активны, сервер отвечает “250 access granted”, если нет, то “550 access denied”. Есть текстовый файл, в котором около 1000 строк с логинами/паролями, задача в том, чтобы прогнать их все через сервер и записать активные в новый файл. Подскажите оптимальное решение. Вот живой логин - “login 18138 31422152”, пример файла с логинами во вложении
Прикреплённый файлы:
login.txt (88 байт)
Офлайн
Используй модуль socket
https://docs.python.org/3/library/socket.html#example
Офлайн
Спасибо, Кэп, обязательно использую))
Отредактировано Tony_bonelli (Авг. 18, 2018 05:13:15)
Офлайн
Вроде сам справился, думаю что для первого раза сойдёт, тем более что до этого только блок-схемы на информатике рисовал
#-*-coding:utf8;-*-
#qpy:3
#qpy:console
import socket
loginfile = open(r'/storage/emulated/0/qpython/login.txt','r')
resultfile = open(r'/storage/emulated/0/qpython/result.txt','w')
line = loginfile.readline()
while line:
login = ('login ' + line[ :15] + '\n' )
line = loginfile.readline()
sock = socket.socket()
sock.connect(('176.32.188.106', 51435))
data = sock.recv(1024)
print (data)
sock.send (login.encode("utf-8"))
data = sock.recv(1024)
print (data)
if data == (b'250 Access granted\n'):
print ('ok')
resultfile.write(login)
sock.close()
loginfile.close()
resultfile.close()
Отредактировано Tony_bonelli (Авг. 18, 2018 07:07:06)
Офлайн
Tony_bonelliДа не надо комплексовать. За день программировать не научишься, как ни старайся. Только тысячи неправильных кодов, написанных собственноручно, дают чутьё в конечном итоге. Даже не прочитанные книги, а именно написанные и опробованные во времени коды.
тем более что до этого только блок-схемы на информатике рисовал
HOST = '176.32.188.106' PORT = 51435 SUCCESS_MESSAGE = b'250 Access granted\n' ... sock.connect((HOST, PORT)) ... if data == SUCCESS_MESSAGE: ...
sock.connect(('176.32.188.106', 51435))
sock.connect((HOST, PORT))
Отредактировано py.user.next (Авг. 18, 2018 10:48:15)
Офлайн