如何在 Python 3.10 中 ping Web 服务器
How to ping a web server in Python 3.10
好的,是时候问一个非常 stupid/obvious 的问题了。我需要使用 ICMP 协议 ping webserver/website 以查看它是否有效。你知道...ping facebook.com
。我的代码生成了一堆 TLD 和子域到用户输入的域名。我计划在执行我需要对它们执行的操作之前对它们全部执行 ping 操作(通常大约为 6 个)以查看它们是否真的有效。但是,所有与我类似的教程和问题都来自 2010 年,不再有效。我必须做的一件事是打印出我不想要的 ping 结果。所以也许像下面这样的某种功能,它只是 returns 或打印出它是否在线而不是实际响应,如果这有意义的话:
def website_checker():
if os.system("ping facebook.com"):
print("facebook.com is valid")
else:
print("facebook.com is not valid")
我不确定这是否有帮助,但我无法用更好的词来表达。拜托,我正在拔头发
您可以使用 ping 库进行 ping。
import ping, socket
try:
ping.verbose_ping('www.google.com', count=3)
delay = ping.Ping('www.wikipedia.org', timeout=2000).do()
except socket.error, e:
print "Ping Error:", e
您可以使用 icmplib。如果 DNS 查找成功并且主机响应所有 ping,以下代码将尝试 ping host
和 returns True
。
from icmplib import ping
from icmplib import ping
from icmplib.exceptions import NameLookupError
def host_up(hostname:str):
try:
host = ping(hostname, count=5, interval=0.2)
except NameLookupError:
return False
return host.packets_sent == host.packets_received
host = "facebook.com"
if host_up(host):
print(f"{host} is valid")
else:
print(f"{host} is not valid")
感谢@Moanos 的帮助,我弄明白了!这是代码:
from icmplib import ping
def host_up(hostname:str):
host = ping(hostname, count=5, interval=0.2)
return host.packets_sent == host.packets_received
hosts = "facebook.gov"
try:
if host_up(hosts):
print(f"{hosts} is valid")
except:
print(f"{hosts} is not valid")
所以函数是@Moanos 的代码,其余的是我的。我使用 try, except 块的原因是为了防止打印出 NameLookupError!所以当它有效时,它只表示它是有效的,当它不是有效域时也是如此。
好的,是时候问一个非常 stupid/obvious 的问题了。我需要使用 ICMP 协议 ping webserver/website 以查看它是否有效。你知道...ping facebook.com
。我的代码生成了一堆 TLD 和子域到用户输入的域名。我计划在执行我需要对它们执行的操作之前对它们全部执行 ping 操作(通常大约为 6 个)以查看它们是否真的有效。但是,所有与我类似的教程和问题都来自 2010 年,不再有效。我必须做的一件事是打印出我不想要的 ping 结果。所以也许像下面这样的某种功能,它只是 returns 或打印出它是否在线而不是实际响应,如果这有意义的话:
def website_checker():
if os.system("ping facebook.com"):
print("facebook.com is valid")
else:
print("facebook.com is not valid")
我不确定这是否有帮助,但我无法用更好的词来表达。拜托,我正在拔头发
您可以使用 ping 库进行 ping。
import ping, socket
try:
ping.verbose_ping('www.google.com', count=3)
delay = ping.Ping('www.wikipedia.org', timeout=2000).do()
except socket.error, e:
print "Ping Error:", e
您可以使用 icmplib。如果 DNS 查找成功并且主机响应所有 ping,以下代码将尝试 ping host
和 returns True
。
from icmplib import ping
from icmplib import ping
from icmplib.exceptions import NameLookupError
def host_up(hostname:str):
try:
host = ping(hostname, count=5, interval=0.2)
except NameLookupError:
return False
return host.packets_sent == host.packets_received
host = "facebook.com"
if host_up(host):
print(f"{host} is valid")
else:
print(f"{host} is not valid")
感谢@Moanos 的帮助,我弄明白了!这是代码:
from icmplib import ping
def host_up(hostname:str):
host = ping(hostname, count=5, interval=0.2)
return host.packets_sent == host.packets_received
hosts = "facebook.gov"
try:
if host_up(hosts):
print(f"{hosts} is valid")
except:
print(f"{hosts} is not valid")
所以函数是@Moanos 的代码,其余的是我的。我使用 try, except 块的原因是为了防止打印出 NameLookupError!所以当它有效时,它只表示它是有效的,当它不是有效域时也是如此。