Фактически, ваш код выполняет функцию block()
, когда tries==3
, но в начале block()
вы воссоздаете файл черного списка, затем читаете пустой файл и в результате условие if ipBlock in isBlocked:
всегда ложно.
Итак, я поместил команды, которые создают файл из block()
. Кроме того, я изменил remove
файла черного списка в функции countdown()
и воссоздаю, но не удаляю его, потому что ваш код пытается снова прочитать его при перезапуске, чтобы спросить имя пользователя. Также я установил tries == 0
, когда block()
заканчивается. Кроме того, отступ в конце countdown()
был неверным.
import socket
import time
import sys
import os
tries = 0
def server():
def block():
#get host ip
ipBlock = socket.gethostbyname(socket.gethostname())
#read black list
ipBlackList = open("ipBlackList.txt", "r")
isBlocked = ipBlackList.readlines()
ipBlackList.close()
#disable account for 60 seconds
if ipBlock in isBlocked:
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timer = '{:02d}:{:02d}'.format(mins, secs)
print('Your account has been temporarily disabled. Please \
try again in '+timer, end=" seconds.\r")
time.sleep(1)
t -= 1
#os.remove('ipBlackList.txt')
# Recreate an empty black list file
ipBlackList = open("ipBlackList.txt", "w")
ipBlackList.close()
print('\nYour account has been re-enabled. You may log in \
now.')
time.sleep(2)
t = 6
countdown(int(t))
#create black list file (empty)
ipBlackList = open("ipBlackList.txt", "w")
ipBlackList.close()
block()
print("Enter administrator login details: ")
def usernameLogin():
#global vars
global tries
if tries == 3:
#read black list
ipBlackList = open("ipBlackList.txt", "r")
isBlocked = ipBlackList.readlines()
ipBlackList.close()
#get host ip
ipBlock = socket.gethostbyname(socket.gethostname())
if ipBlock not in isBlocked:
ipBlackList = open("ipBlackList.txt", "w")
ipBlackList.write(ipBlock)
ipBlackList.close()
block()
tries = 0
username = input("\nUsername: ")
#check if username exists
usernames = open("/test/usernames.txt", "r")
checkUser = usernames.readlines()
usernames.close()
if username not in checkUser:
print("That username doesn't exist. Please try again.")
tries += 1
print(tries)
time.sleep(2)
usernameLogin()
print("im in")
time.sleep(3)
usernameLogin()
server()