/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/python/testing/swag/ports.py
30 строк
836 B
Anton Myagkov
Update ydb version to 24.4 (#4579)
07 фев 2026, 11:59
Не верифицирован
07 фев 2026, 11:59
2c21cae
Код
Авторство
О чём код?
import random import socket ATTEMPTS = 25 # range 10000-10199 is reserved for Skynet on Sandbox machines MIN_PORT = 10200 MAX_PORT = 25000 def is_port_open(host, port): _socket = socket.socket(socket.AF_INET) return _socket.connect_ex((host, port)) != 0 def find_free_port(range_start=MIN_PORT, range_end=MAX_PORT, attempts=ATTEMPTS): """ Finds free port :param range_start: start of range :param range_end: end of range :param attempts: number of tries to find free port :return: some open port in a given range """ ports = [random.randint(range_start, range_end) for _ in range(attempts)] while ports: port = ports.pop() if is_port_open('', port): return port raise RuntimeError('Could not find free port in range = ' + str((range_start, range_end)))