当前位置: 首页 > 面试题库 >

用Python ping服务器

钱欣然
2023-03-14
问题内容

在Python中,是否可以通过ICMP对服务器进行ping操作,如果服务器响应则返回TRUE,如果没有响应则返回FALSE?


问题答案:

此功能可在任何操作系统(Unix,Linux,macOS和Windows)
Python 2和Python 3中使用

编辑:
被@radato
os.system替换为subprocess.call。这样可以避免在主机名字符串可能未经验证的情况下出现外壳注入漏洞。

import platform    # For getting the operating system name
import subprocess  # For executing a shell command

def ping(host):
    """
    Returns True if host (str) responds to a ping request.
    Remember that a host may not respond to a ping (ICMP) request even if the host name is valid.
    """

    # Option for the number of packets as a function of
    param = '-n' if platform.system().lower()=='windows' else '-c'

    # Building the command. Ex: "ping -c 1 google.com"
    command = ['ping', param, '1', host]

    return subprocess.call(command) == 0

请注意,根据Windows上的@ikrase,True如果遇到Destination Host Unreachable错误,此html" target="_blank">函数仍将返回。

说明

该命令ping在Windows和类似Unix的系统中都可以使用。
选项-n(Windows)或-c(Unix)控制在此示例中设置为1的数据包数量。

platform.system()返回平台名称。例如
'Darwin'在macOS上。
subprocess.call()执行系统调用。例如
subprocess.call(['ls','-l'])



 类似资料:
  • 在异步HTTP SERVER中使用服务 全局方法service_center() 使用service_center($service)获取服务地址,然后使用call()方法调用公开的服务方法 $service = (yield service_center('User')); $user = (yield $service->call("User::getUser", ['id'

  • 本文向大家介绍linux vps服务器常用服务iptables策略,包括了linux vps服务器常用服务iptables策略的使用技巧和注意事项,需要的朋友参考一下 vps服务器裸奔在公网上,总感觉有点不安全,没办法总得整点措施来加固下服务器呀,安全第一。linux系统自带防火墙必须要好好利用起来,可是我有一年多没写过防火墙策略了,该忘的都忘了,不该忘的也都忘得差不多了,看笔记,找找感觉。 目前

  • 我可以在我自己的电脑上使用这个程序,但是我不能在服务器上使用。 服务器使用最高权限管理员打开程序。 具有的服务器WCF HTTP激活功能。NET4。5号门开着。 服务器endpoint地址使用"http://localhost",如下所示 endpoint地址="http://localhost"绑定="basicHttpBind"bindingConfiguration="NewBinding0

  • 我们的项目中使用的是Spring Cloud config server,它有多个微服务。配置服务器就绪后,我们现在将所有微服务的所有属性存储在一个中央git存储库中。每个微服务能够根据应用程序名称和配置文件提取自己的属性文件。我们试图将资源包存储在中央存储库中,并让config-server将这些资源包提供给微服务。我们的资源包包括属性文件,如messages_en.properties、mes

  • 通用服务 网页生命周期 1.BdHiJs.appnative.webview.load 打开新窗口加载当前应用页面(用于应用内页面的跳转,具有本应用的权限、JS SDK能力) 如果加载的URL为非应用可信域名,则该函数不做任何操作(console中应提示error信息以告知开发者错误原因:{URL}包含不可信域名)。 旧应用兼容:旧应用因未设置可信域名,则按原有逻辑,不做可信域名校验。 B

  • 通用服务 网页生命周期 1.BdHiJs.appnative.webview.load 打开新窗口加载当前应用页面(用于应用内页面的跳转,具有本应用的权限、JS SDK能力) 如果加载的URL为非应用可信域名,则该函数不做任何操作(console中应提示error信息以告知开发者错误原因:{URL}包含不可信域名)。 旧应用兼容:旧应用因未设置可信域名,则按原有逻辑,不做可信域名校验。 B