Je crée de la sécurité pour mon script python nécessitant que l'utilisateur saisisse un nom d'utilisateur et un mot de passe qui sera envoyé à un serveur qui vérifiera alors si le nom d'utilisateur mot de passe existe. Si c'est le cas, je veux que la personne puisse utiliser le logiciel. J'ai fait tout cela cependant je ne peux pas trouver une solution à plusieurs personnes en utilisant le même nom d'utilisateur et mot de passe. Comment puis-je empêcher plusieurs personnes d'accéder au logiciel en utilisant la même connexion?python comment forcer les utilisateurs à se connecter à un serveur socket pour utiliser le script python
est Ci-dessous le code du serveur au moment:
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()
et voici un échantillon d'un client:
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))
Ce n'est peut-être pas aussi grave que vous le pensez. Et si quelqu'un voulait utiliser le logiciel sur deux ordinateurs différents? Quoi qu'il en soit, vous devez garder une liste des utilisateurs connectés pour accéder à chaque fois que quelqu'un voulait se connecter. – Steampunkery
@Steampunkery Penser à ce sujet qui a du sens. Je pensais à un géo-logger ou à d'autres moyens plus complexes, mais une liste de connexion peut aider. Va poster si je résous ma propre question! – Kermit
Sur le même réseau? – dsgdfg