在没有 root 权限的情况下 Ping Python 中的服务器
Ping server in Python without root permissions
我有一个 python 脚本,它只有在我的服务器可用时才能运行。所以在脚本开始之前,我想 ping 我的服务器或者检查服务器的可用性。
已经有一些相关的 SO 问题。
例如
pyping module
response = pyping.ping('Your IP')
if response.ret_code == 0:
print("reachable")
else:
print("unreachable")
ping process in python
response = os.system("ping -c 1 " + hostname)
这些答案很有效,但仅限于 ROOT 用户!
当我以普通用户身份使用此解决方案时,出现以下错误消息:
ping: Lacking privilege for raw socket.
我需要一个解决方案,我可以作为普通用户执行此操作,因为我在 jenkins 作业中 运行 这个脚本,并且没有 运行 作为 root 的选项。
假设机器有一个 http 服务器 运行,尝试执行 HTTP HEAD 请求是否足够?
from http.client import HTTPConnection # python3
try:
conn = HTTPConnection(host, port, timeout)
conn.request("HEAD", "/")
conn.close()
# server must be up
except:
# server is not up, do other stuff
我有一个 python 脚本,它只有在我的服务器可用时才能运行。所以在脚本开始之前,我想 ping 我的服务器或者检查服务器的可用性。
已经有一些相关的 SO 问题。 例如
pyping module
response = pyping.ping('Your IP') if response.ret_code == 0: print("reachable") else: print("unreachable")
ping process in python
response = os.system("ping -c 1 " + hostname)
这些答案很有效,但仅限于 ROOT 用户! 当我以普通用户身份使用此解决方案时,出现以下错误消息:
ping: Lacking privilege for raw socket.
我需要一个解决方案,我可以作为普通用户执行此操作,因为我在 jenkins 作业中 运行 这个脚本,并且没有 运行 作为 root 的选项。
假设机器有一个 http 服务器 运行,尝试执行 HTTP HEAD 请求是否足够?
from http.client import HTTPConnection # python3
try:
conn = HTTPConnection(host, port, timeout)
conn.request("HEAD", "/")
conn.close()
# server must be up
except:
# server is not up, do other stuff