У меня есть список имен хостов, и я хочу проверить, работают ли эти машины или нет с интервалом около одной секунды.Быстрое имя хоста/IP-адрес в Python?
Что у меня до сих пор это, но тайм-аут на машинах, которые на форуме занимает несколько секунд:
socket.setdefaulttimeout(0)
def resolve_hostname(hostname):
try:
return socket.gethostbyname(hostname)
except socket.error:
return False
Не хорошо, как список насчитывает около 30 машин.
Любые идеи, как ускорить работу?
Спасибо!
Это классический прецедент для многопоточности. Запустите каждый запрос в новом потоке. Вы не можете получить таймауты, чтобы происходить все быстрее. – 101
Насколько я могу судить, 'gethostbyname' просто ищет' hostname' и не подключается к хосту. Тайм-аут может не повлиять на него. Возможно ли, что разрешение имени занимает несколько секунд? – kai
@ 101 спасибо, я посмотрю на это. – Till