回答
你可以使用exec
调用系统ping命令
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("ping -c 3 localhost", puts);
你可以这样做。但是,如果你做得很多(同时),这将是昂贵的,因为分离过程昂贵(相对)。 – Alfred 2011-01-19 22:54:58
做平(可编程)需要root权限,因为它需要的RAW套接字需要root权限。您可以在Gradwohl's代码段执行ping命令,但请记住,您正在分配一个昂贵(相对)的新流程。如果你不需要做很多(并发),这肯定会工作:)
要做到这一点在node.js(唯一)没有派生过程我认为你有几个选项,这是很难执行:()
- 将此ping python library改写为node.js,然后以root用户身份运行程序。
- 对于node.js.使用asio c++ library编写c++ extension/addon for node.js。它也有几个例子如何做icmp ping。
不(仅)使用的node.js:
- 使用python ping library跑了作为根,并通过与redis的实例的node.js通信。 =>EASIEST执行(几乎没有任何工作,但我认为相当快:))
- 再次使用asio C++编写c(++)代码,而不是写node.js扩展通过hiredis与node.js通信也使用redis。
作为一个侧面说明了如何在node.js的使用Redis的:
- 从http://redis.io
- 安装Redis的安装快速node_redis library
我知道这个答案已回答不久前,但对于正在寻找相同答案的人,我已经在github上编写了一个模块,尝试简化它更多:)
你的链接似乎坏了...... – starbeamrainbowlabs 2013-06-18 19:04:51
我是ping-wrapper的作者。
它产卵平,你可以立即收听事件。如果进程退出,它将自动产生。
您还可以使用我的nodejs ping包装yaping。有一天,我们将在nodejs中获得原始套接字,并且我们将能够创建自己的ping数据包并对我们的响应时间进行说谎。;-)
这个简单的功能应该
- 做DNS查找
- 平一次 超时后
- 10秒
- 沟通,平安提供
- 产卵所有的虽然是出错误代码一个孩子的过程非婚姻
node-net-ping是一个非常棒的模块,它使用原始套接字。
而且,如果您只查找原始套接字,则同一开发人员也有相应的模块:node-raw-socket。
- 1. Ping Angular 2应用程序
- 2. 如何从iOS应用程序ping服务器?
- 3. 如何从node.js子进程使用CLI应用程序?
- 4. Ping通过使用Node.Js不断ping CMD
- 5. Django中的Ping FeedBurner应用程序
- 6. 应用程序保持Ping GPS
- 7. node.js socket.io应用程序 - 如何从聊天室踢人?
- 8. 如何从node.js打开终端应用程序?
- 9. 如何从node.js应用程序运行命令行工具
- 10. Azure移动应用程序 - ping如何处理7次?
- 11. Node.js应用程序性能
- 12. Node.js - socket.io web应用程序
- 13. rerouting node.js应用程序(Ghost)
- 14. 从客户端应用程序获取ping时间
- 15. 如何从node.js程序运行Excel VBA?
- 16. 如何从iOS应用程序中的Node.js服务器获取响应?
- 17. Node.js的web应用程序 - 如何使其可用于使用
- 18. 将node.js应用程序编译为桌面应用程序
- 19. 从AppEngine Ping Ping
- 20. 如何从远程应用程序
- 21. 如何运行node.js程序
- 22. 如何从其他应用程序启动ClickOnce应用程序?
- 23. 如何从Java Web应用程序启动Android应用程序?
- 24. 如何从C#应用程序启动应用程序?
- 25. 如何从应用程序内更新应用程序?
- 26. 如何从Web应用程序加载iPhone应用程序
- 27. Xamarin.Android:如何从SMS应用程序返回主应用程序
- 28. 如何使用Node.js创建独立命令行应用程序
- 29. 如何将node.js作为本地应用程序调用?
- 30. 如何使用REDIS + Node.js注销我的应用程序
制作ICMP消息通常需要root权限,所以如果你在UNIX上运行,你的脚本必须运行suid root,我不确定你想要那个。或者你需要能够启动一个suid root的外部进程(即ping),不知道node.js中是否有可能,但我认为它应该是? – falstro 2011-01-19 15:35:07
尼古拉斯的做法可能会变慢,如果你做了很多,因为你正在分流过程(相对昂贵)。 – Alfred 2011-01-20 11:50:54