回答
你可以使用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. 如何限制node.js應用程序?
- 5. 如何從node.js調用java程序?
- 6. Ping通過使用Node.Js不斷ping CMD
- 7. 從node.js啓動外部應用程序
- 8. 應用程序保持Ping GPS
- 9. Ping應用程序的實現方法
- 10. 在ios上Ping應用程序
- 11. Django中的Ping FeedBurner應用程序
- 12. 如何從node.js打開終端應用程序?
- 13. 如何從Node.js應用程序設置客戶端CoffeeScript?
- 14. node.js socket.io應用程序 - 如何從聊天室踢人?
- 15. 如何從node.js應用程序運行命令行工具
- 16. 如何從名稱運行node.js應用程序
- 17. Azure移動應用程序 - ping如何處理7次?
- 18. Node.js - socket.io web應用程序
- 19. rerouting node.js應用程序(Ghost)
- 20. Node.js應用程序性能
- 21. 從客戶端應用程序獲取ping時間
- 22. 響應Node.JS服務器中的Ping
- 23. 如何從node.js程序運行Excel VBA?
- 24. 如何從iOS應用程序中的Node.js服務器獲取響應?
- 25. 如何從我的應用程序創建Docker-image?它是使用MongoDB的node.js應用程序
- 26. 如何從Xamarin Android應用程序調用Android應用程序
- 27. 如何在heroku上遠程調試node.js應用程序?
- 28. Node.js的web應用程序 - 如何使其可用於使用
- 29. 如何從遠程應用程序
- 30. Heroku應用程序錯誤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