0
사용자가 사용자 이름과 암호를 입력하도록 요구하는 파이썬 스크립트에 대한 보안 기능을 생성합니다. 그러면 사용자 이름과 암호가 암호가 존재합니다. 만약 그렇다면, 나는 그 사람이 소프트웨어를 사용할 수 있도록하고 싶다. 나는이 모든 일을했지만 동일한 사용자 이름과 암호를 사용하여 여러 사람에게 해결책을 찾을 수 없습니다. 동일한 로그인을 사용하여 여러 사람이 소프트웨어에 액세스하는 것을 방지하려면 어떻게합니까? 다음은 python 사용자가 파이썬 스크립트를 사용하기 위해 소켓 서버에 로그인하도록하는 방법
순간에 서버 코드 :import socket
import threading
import sys
class Server():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connections = []
def __init__(self):
self.sock.bind(("0.0.0.0", 10000))
self.sock.listen(1)
mystring = "Welcome"
mystrinf = "Not allowed"
self.b = mystring.encode('utf-8')
self.d = mystrinf.encode("utf-8")
def handler(self, c, a):
while True:
data = c.recv(2024)
dara = data.decode("utf-8")
for connection in self.connections:
with open(r"C:\Users\Tom\PycharmProjects\untitled\names.txt") as f:
if dara in [line.strip() for line in f.readlines()]:
connection.send(self.b)
print(data)
break
else:
connection.send(self.d)
print(data)
break
if not data:
self.connections.remove(c)
c.close()
break
def run(self):
while True:
c, a = self.sock.accept()
cThread = threading.Thread(target=self.handler, args=(c,a))
cThread.daemon = True
cThread.start()
self.connections.append(c)
print(self.connections)
server = Server()
server.run()
여기에 고객의 샘플입니다 순간에 나를 위해
import socket
host = "********"
port = 10000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
lol = input("?")
l = lol.encode("utf-8")
s.sendall(l)
data = s.recv(1024)
dara = data.decode("utf-8")
s.close()
print('Received', repr(dara))
생각했던 것만 큼 큰 문제는 아닐 수도 있습니다. 누군가 다른 컴퓨터에서 소프트웨어를 사용하려면 어떻게해야합니까? 어쨌든 로그인하려는 사용자가 로그인 할 때마다 로그인 한 사용자 목록을 유지해야합니다. – Steampunkery
@Steampunkery 그 점에 대해 생각해보십시오. 지리적 로거 또는 다른보다 복잡한 방법을 생각했지만 로그인 목록이 도움이 될 수 있습니다. 내 자신의 질문을 해결하면 게시됩니다. – Kermit
동일한 네트워크에 있습니까? – dsgdfg