У меня есть следующий код, который проверяет наличие интернет-соединения.Проверка наличия интернет-соединения в python
import urllib2
def internet_on():
try:
response=urllib2.urlopen('http://74.125.228.100',timeout=20)
return True
except urllib2.URLError as err: pass
return False
Это проверит подключение к Интернету, но насколько оно эффективно?
Я знаю, что интернет отличается качеством от человека к человеку, поэтому я ищу что-то, что наиболее эффективно для широкого спектра, и приведенный выше код кажется, что могут быть лазейки, где люди могут найти ошибки. Например, если у кого-то было очень медленное соединение и потребовалось больше 20 секунд, чтобы ответить.
Почему? Как уже было сказано, это звучит как простой пример «взглянуть, прежде чем прыгать». Лучший подход обычно «легко просить прощения, чем разрешения.«Если вы объясните, что вы пытаетесь выполнить, вы можете получить более точные ответы. –
@ Jean-PaulCalderone Я пытаюсь убедиться, что у пользователя есть подключение к Интернету, прежде чем моя программа начнет выполнять некоторые задачи, которые будут обновлять систему Например, загружать пакеты из зеркала, а затем устанавливать их. –
Почему бы вам просто не попробовать загрузить эти пакеты? Если попытка подключения к зеркалу отключается, вы можете сообщить о тайм-ауте для пользователя. * предпочитайте этот опыт для вашей неудачной попытки обнаружить, работает ли их сеть. –