我的ISP遇到了问题,我的互联网已经断开了几分钟,然后又恢复了。当我给他们打电话时,他们说他们只监视30分钟或更长时间的水滴。他们还说,除非计算机出现这些问题并将其直接连接到调制解调器,否则他们将不会提供任何服务。
我有一台笔记本电脑,我直接将其插入调制解调器。我的其余网络都通过路由器。我希望每台计算机都可以监视它与Internet的连接,并在发生实时故障时通知我。
我写了一个可以完成此操作的python脚本,但问题是,即使我使用了timeout属性,当Internet断开时(通过自己强制向下进行测试),而不是响应几秒钟后,它会等待大约30秒钟后再发布,而且时机到位。
目前我正在做这样的事情:
import socket
MESSAGE = bytes("!", "utf-8")
UDP_PORT = 443
def ping(udp_ip):
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.settimeout(2)
sock.sendto(MESSAGE, (udp_ip, UDP_PORT))
try:
ping("google.com")
time.sleep(3)
except socket.gaierror:
alert()
time.sleep(3)