Chcę pingować serwer z mojej aplikacji node.js.Jak "Ping" z aplikacji Node.js?
Czy to możliwe?
Dzięki
Chcę pingować serwer z mojej aplikacji node.js.Jak "Ping" z aplikacji Node.js?
Czy to możliwe?
Dzięki
Można użyć exec
wywołać komendę System 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);
Możesz to zrobić w ten sposób. Ale jeśli zrobisz to dużo (jednocześnie), będzie to kosztowne, ponieważ rozwidlanie jest kosztowne (względne). – Alfred
robi ping (programowalny) wymaga uprawnień roota, ponieważ wymaga raws gniazd, które wymagają dostępu do konta roota. Możesz wykonać polecenie ping po kodzie Gradwohl's, ale pamiętaj, że tworzysz nowy proces, który jest drogi (względnie). Jeśli nie musisz tego robić dużo (współbieżność) to na pewno zadziała :)
Aby zrobić to w node.js (tylko) bez procesu rozwidlenia Myślę, że masz kilka opcji, które są zarówno trudne zaimplementować :()
nie (tylko) przy użyciu node.js:
Jako marginesie jak wykorzystać Redis na node.js:
wiem ta odpowiedź została udzielona odpowiedź Jakiś czas temu, ale dla osób, które szukają tej samej odpowiedzi, napisałem moduł na githubie, aby spróbować go uprościć jeszcze bardziej :)
Twój link wydaje się być uszkodzony ..... – starbeamrainbowlabs
Naprawiono dziękuję. Zmieniłem nazwę użytkownika. – Menztrual
Jestem autorem ping-wrapper.
Odradza się ping i można natychmiast słuchać wydarzeń. Jeśli proces zostanie zakończony, zostanie automatycznie odrodzony.
Możesz również użyć mojego opakowania ping nodejs yaping. Pewnego dnia otrzymamy surowe gniazda w nodejs i będziemy mogli tworzyć własne pakiety ping i kłamać na temat naszych czasów odpowiedzi.;-)
Ta prosta funkcja powinna
node-net-ping to niesamowity moduł wykorzystujący surowe gniazda.
A jeśli szukasz tylko gniazd surowych, ten sam programista ma moduł również do tego: node-raw-socket.
Tworzenie komunikatów ICMP zwykle wymaga uprawnień administratora, więc twoje skrypty muszą uruchamiać suid root, jeśli używasz systemu UNIX i nie jestem pewien, czy tego chcesz. Lub musisz być w stanie uruchomić proces zewnętrzny (tj. Ping), który jest suid root, nie wiem, czy jest to możliwe w node.js, ale przypuszczam, że powinno to być? – falstro
Podejście Nikolausa może być powolne, jeśli robisz to dużo, ponieważ jesteś rozwidleniem procesów (względnie drogich). – Alfred