Use ping de Linux en Cygwin

8

Necesito trabajar con un script que use el pingcomando con su sintaxis ordinaria de Linux, ni el paquete predeterminado de Cygwin ni la utilidad de ping de Windows funcionarán. Por ahora, he parcheado el script para usar la versión de Windows (con cierta dificultad; el ejecutable de Windows no proporciona códigos de retorno útiles, por lo que tengo que analizar el resultado), pero me gustaría que el fuera de la- compatibilidad de cuadro y características adicionales del ping de Linux. Antes de continuar, permítanme decir que estoy ejecutando Cygwin en modo administrador; No es un problema de privilegios. Es un problema de versiones.

El pingcomando predeterminado de Cygwin aparece como versión '1.0-1' en el administrador de configuración, en el paquete 'ping: una herramienta de red básica para probar la conectividad de red IP'. Sin argumentos, genera:

Usage:  ping [-dfqrv] host [packetsize [count [preload]]]

y la descripción de la página de manual comienza con "Internet DARPA es una agregación grande y compleja de hardware de red" , que me parece que está un poco desactualizado. Esta es la versión instalada en /bin/ping.

El pingcomando de Windows se encuentra en $SYSTEMROOT/system32/ping, y muestra el siguiente mensaje en la invocación sin parámetros.

Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
        [-r count] [-s count] [[-j host-list] | [-k host-list]]
        [-w timeout] target_name

Este es ciertamente un ping más rico en funciones (en particular, incluye tiempos de espera, lo cual es importante para mí), pero no es la versión disponible en una instalación moderna de Linux:

ping [ -LRUbdfnqrvVaAB] [ -c count] [ -i interval] [ -l preload] [ -p pattern] 
     [ -s packetsize] [ -t ttl] [ -w deadline] [ -F flowlabel] [ -I interface] 
     [ -M hint] [ -Q tos] [ -S sndbuf] [ -T timestamp option] [ -W timeout] 
     [ hop ...] destination

documentado en línea aquí . Parece que no puedo encontrar referencias a la versión cygwin de ping, excepto en referencia a Cygwin.

Encontré este antiguo hilo de correo electrónico que describe una versión anterior de Cygwin sin ping. No he encontrado ninguna versión de iputils diseñada para Windows.

Kevin Vermeer
fuente

Respuestas:

3

Usted podría

  • intente construir ping desde la fuente, es parte del paquete iputils . Pero construir cosas en Cygwin puede ser bastante complicado.

O (y probaría esto primero)

Nifle
fuente
Gracias, parece que la primera opción va a funcionar mejor para mí, ya que uno de los requisitos deseados es que tenga la sintaxis de la versión de iputils, por lo que intentar otra implementación de ping no ayudará. Dicho esto, dudo que sea el primero en encontrarme con esto, así que esperaré en caso de que alguien ya lo haya intentado.
Kevin Vermeer
Por cierto, iputils no ha lanzado una etiqueta en casi dos años, pero ha habido algún desarrollo para el soporte de IPv6 en su repositorio git, que fue un poco difícil de encontrar pero se encuentra en `git: //git.linux- ipv6.org / gitroot / iputils.git`. Espero que ayude a alguien. Publicaré el parche cuando haya terminado con esto, hay bastante trabajo por hacer, pero no parece insuperable.
Kevin Vermeer
1
Si llega a algún lugar con la construcción de iputils para Cygwin, sospecho que al resto de la comunidad de Cygwin también le encantaría hacerlo.
yo_y
@me_and - Definitivamente lo lanzaría si tuviera éxito. Sin embargo, mientras que los primeros archivos compilados bien por un simple cambio #include <linux/filename.h>de #include <cygwin/filename.h>y similares, que más tarde se descubrió que los conductores de la toma de Cygwin también se carece de características que necesitan los iputils. No se trata solo de construir iputils para Cygwin, también se trata de construir Cygwin para que funcione con iputils. Lo intentaré más tarde si tengo algo de tiempo libre.
Kevin Vermeer