如何在 R 中获得 ping 响应

2024-03-12

我有一个包含域名列的数据框。我想通过 ping 域名来查看存在哪个域。我可以从以下函数获得单独的 ping 响应。

ping <- function(x,stderr=FALSE,stdout=FALSE,...){
pingvec <- system2("ping",x,
                 stderr=FALSE,
                 stdout=FALSE,...)
if (pingvec == 0) TRUE else FALSE
}



ping("google.com")
[1] TRUE

是否有任何 R 包可以让我获得具有数千个域名的整个列的 ping 响应。


使用这不是一个好主意system()命令 - 作为任何编程语言的一般规则。这主要原因 https://stackoverflow.com/a/4622772/4770166是安全性和可移植性问题。

The pingr https://cran.r-project.org/web/packages/pingr/包提供了在 R 中 ping 远程服务器的可能性:

library(pingr)
URLs <- c("google.com", "yahoo.com")  
sapply(URLs, ping)
#     google.com yahoo.com
#[1,]       14.6       171
#[2,]       14.7       171
#[3,]       14.6       171

编辑/评论

查看函数源码pingr::ping() and pingr:::ping_os()看来该包does使用呼叫system()。因此,我认为安全问题依然存在 http://www.cplusplus.com/forum/articles/11153/,由于操作系统功能ping可以被重新定义来做一些完全不同并且可能有害的事情。该包似乎解决了可移植性问题,因为根据操作系统调用不同的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 R 中获得 ping 响应 的相关文章

随机推荐

  • 为什么 Azure 通知中心标签不保存?

    我正在尝试向通知中心发送消息 但我的标签未保存 I checked service hub with service hub explorer and tags are empty 设备注册 var hs new HashSet
  • MapReduce - 如何按值对减少输出进行排序

    如何按值降序对减速器输出进行排序 我正在开发一个必须返回最常听的歌曲的应用程序 因此 歌曲必须按照收听次数排序 我的应用程序以这种方式工作 Input songname userid boolean MapOutput songname u
  • 发现插件与新版本不兼容:Firebase Services

    我无法更新到 Android Studio 4 0 当我检查更新时 它向我显示以下消息 发现与新版本不兼容的插件 Firebase Services 这是 Android Studio 插件的 Firebase 服务 https plugi
  • Log4j2 RegexFilter 模式不匹配

    我的日志中有以下几行我想排除 所以我想使用RegexFilter这样做 INFO 2018 05 20 14 52 15 993 qtp22844606 20 TimingFilter Request time 16 ms INFO 201
  • ContinueWith TaskContinuationOptions.OnlyOnFaulted 似乎没有捕获从已启动任务引发的异常

    我正在尝试使用 ContinueWith 和 OnlyOnFaulted 捕获从任务方法引发的异常 如下所示 但是 当我尝试运行此代码时 出现未处理的异常 我希望任务能够完成 因为我已经处理了异常 但是 Task Wait 遇到 Aggre
  • Angular4 项目上字体很棒的图标未加载

    我正在使用 font awesome 开发 Angular 4 项目 我按照本指南使用 npm 安装库 如何将 font awesome 添加到 Angular 2 CLI 项目 https stackoverflow com questi
  • 根据多个任意模式验证 XML

    考虑一个具有多个模式的 XML 文档 其开头如下所示 这不是 Spring 特定的问题 这只是示例的一个方便的 XML 文档
  • 为什么 GetAttr 不适用于 cloudformation 模板参数?

    拥有父子关系中的 cloudformation 模板集合 并希望将 AWS IAM Role 传递到子堆栈的参数中 并使用 GetAttr 获取 Arn 这会导致验证失败 因为只能对资源调用 GetAttr 而不能对参数调用 有人知道 猜猜
  • 当服务器在Linux中启动时,Spring Boot出现错误

    首先 有两个Linux服务器 我想建立一个冗余的web server在两台服务器上 我在两台服务器上均等地安装了jre1 8 0 并且我在两台服务器上均等地安装了相同的spring boot war文件 顺便一提 服务器1正常启动并正常工作
  • 如何在 ruby​​ on Rails 中调用存储过程?

    我是 ROR 新手 我想在单击 VIEW 中的提交按钮时调用存储过程进行处理 Model class Pro DataImport lt ActiveRecord Base attr accessible file name process
  • NamedPipe 多个服务器

    对于简单的 IPC 我选择了 NamedPipes 在进程 本地 之间进行通信 由于需求的变化 应该有多个服务器实例 这会导致同一管道名上有多个 侦听器 但似乎有一个问题 这些侦听器中只有一个会收到消息 其他所有实例都不会收到消息 有某种
  • Python 从装饰器导入模块

    我正在使用 Python 3 开发一个应用程序 而且我所做的事情是非常规的 cx Oracle 是一个很难设置的模块 对于我的应用程序来说是一个可选的依赖项 我想做的是将模块的导入包装在装饰器中 仅放置在使用它的函数之上 这将避免必须在我的
  • 递增循环的致命错误

    目前 我正在尝试创建一个函数 在 Fighter cpp 文件中的函数 sortFighters 中对充满战斗机的向量进行排序 一切似乎都可以正确编译 但是 当它运行时 我在上述 cpp 文件的某一行中收到致命错误 我确切地知道问题是什么
  • 未添加 NuGet 包的参考

    我有一个自定义 NuGet 包 My Resources 其中包含程序集和对另一个自定义 NuGet 包 My Base 的依赖项 如果我安装该软件包 安装会成功完成 但不会添加程序集引用 这是完整的输出Install Packagecom
  • 矩阵列表乘以标量,Rcpp 中不保留维度属性

    我正在使用 Rcpp 来加速一些 R 代码 实际上这是我 2014 年 待办事项 列表中的项目之一 部分代码包括将矩阵列表乘以标量 我能够得到结果 尽管如此 矩阵不再是矩阵 而是向量 我想要一个矩阵列表作为最终输出 这是我到目前为止的代码
  • htaccess 重定向百分号

    我遇到了 htaccess redirect 问题 在搜索了近一个小时后无法解决 请帮我 RewriteRule yeah http www domain de awesome 123123 NC QSA L R 301 所以我想从doma
  • 从 futures::Stream 转发到 futures::Sink

    我目前正在尝试了解 tokio futures 原语和生态系统 我开始做一些工作tk http websocket 示例 https github com swindon rs tk http blob abfdb50a00ab90b4f0
  • 在 C# 中导入 DLL

    我正在尝试使用 DllImport 将 dll 导入到我的 C 项目 如下所示 DllImport kernel32 private static extern long WritePrivateProfileString string s
  • 使用 HTML / CSS 显示/隐藏带有复选框的特定 Div

    我正在尝试找出一种方法来链接特定的复选框以显示 隐藏specificdiv 元素 我能够找到显示 隐藏 Div 元素的复选框的代码紧接在下面他们 但我想知道是否有一种方法可以将特定的复选框链接到我选择的任何 div 在我的代码中 我基本上想
  • 如何在 R 中获得 ping 响应

    我有一个包含域名列的数据框 我想通过 ping 域名来查看存在哪个域 我可以从以下函数获得单独的 ping 响应 ping lt function x stderr FALSE stdout FALSE pingvec lt system2