Quiero hacer ping a un servidor desde mi aplicación node.js.¿Cómo hacer "ping" desde la aplicación Node.js?
¿Eso es factible?
Gracias
Quiero hacer ping a un servidor desde mi aplicación node.js.¿Cómo hacer "ping" desde la aplicación Node.js?
¿Eso es factible?
Gracias
Usted podría utilizar exec
para llamar al comando ping sistema
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("ping -c 3 localhost", puts);
Puedes hacerlo de esta manera. Pero si lo haces mucho (al mismo tiempo) va a ser costoso porque el proceso de bifurcación es costoso (relativo). – Alfred
Hacer ping (programable) requiere privilegios de root ya que requiere raws tomas que requieren acceso de root. Puede realizar ping siguiendo el fragmento Gradwohl's, pero tenga en cuenta que está creando un nuevo proceso que es costoso (relativamente). Si no necesita hacerlo mucho (concurrencia) esto definitivamente funcionará :)
Para hacerlo en node.js (solo) sin proceso de bifurcación Creo que tiene un par de opciones, que son difíciles para implementar :()
no (sólo) usando Node.js:
Como nota lateral cómo utilizar Redis en Node.js:
Sé que esta respuesta ha sido contestada Hace bastante tiempo, pero para las personas que están buscando la misma respuesta, he escrito un módulo en github para tratar de simplificarlo más :)
Su enlace parece estar roto ..... – starbeamrainbowlabs
Gracias fijas. Cambié mi nombre de usuario – Menztrual
Yo soy el autor de ping-wrapper.
Genera ping y puedes escuchar eventos inmediatamente. Si el proceso se cierra, se generará automáticamente.
También puede usar mi contenedor nodejs ping yaping. Algún día obtendremos sockets sin procesar en nodejs y podremos hacer nuestros propios paquetes de ping y mentir sobre nuestros tiempos de respuesta.;-)
Esta función simple debe
node-net-ping es un módulo impresionante que utiliza conectores sin formato.
Y, si solo está buscando sockets sin formato, el mismo desarrollador también tiene un módulo: node-raw-socket.
Elaborar mensajes ICMP generalmente requiere privilegios de raíz, por lo que sus scripts deben ejecutar suid root si se está ejecutando en Unix, y no estoy seguro de querer eso. O necesita poder iniciar un proceso externo (es decir, ping) que es suid root, no sé si eso es posible en node.js pero supongo que debería ser? – falstro
El enfoque de Nikolaus puede ser lento si lo haces mucho porque estás bifurcando procesos (relativamente caros). – Alfred