Ищу циклом текущего пользователя компьютера в локальной сети
def scan_Lan():
ip_list = ['192.168.4.']
i = 50
while i <= 240:
scan_ip = ip_list[0] + str(i)
response = subprocess.Popen(["ping", "-n", "1", "-w", "200", scan_ip]).wait()
if(response == 0):
try:
wql = 'SELECT * FROM Win32_computerSystem'
c = wmi.WMI(scan_ip, user='office\admin', password='fff')
for item in c.query(wql):
currentUser = str(item.UserName)
print(currentUser)
if(currentUser == "ivanov"):
print(scan_ip)
break
except:
print("-")
i += 1
print("end")
scan_Lan()
Все хорошо работает, но хочу после поиска выходить полностью из цикла while, как это сделать? Поставил вот здесь
print(scan_ip)
break
но он по всей видимости выходит только из for, а как сделать глобальный break?
Ответ
break прекращает только вложенный цикл. Внешний цикл продолжает работать. Используйте return, когда результат найден в вашем случае:
if current_user == 'ivanov':
return scan_ip
Комментариев нет:
Отправить комментарий