gping - Utilidad ping para servidores Gemini


Una utilidad similar a `ping` para probar la conectividad con servidores que usan el protocolo Gemini (gemini://).

Características


- Prueba la conectividad con servidores Gemini sobre TLS (puerto 1965)
- Mide tiempos de respuesta incluyendo el handshake TLS
- Muestra códigos de estado del protocolo Gemini
- Soporte multilingüe (inglés, español, alemán, francés, italiano, ruso)
- Detecta automáticamente el idioma del sistema
- Número de pings, intervalo y timeout configurables
- Manpage incluida

Instalación


Desde código fuente:

# Clonar o descargar el código fuente
make
sudo make install  # Instala binario y manpage

Solo el binario:

sudo make install-bin

Instalación manual:

# Instalar binario
sudo cp gping /usr/local/bin/

# Instalar manpage (opcional)
sudo cp gping.1.gz /usr/share/man/man1/
sudo mandb  # Actualizar base de datos de manpages

Uso


Sintaxis básica:

gping [OPCIONES] <Gemini-URI>

Ejemplos:

# Ping básico a un servidor Gemini
gping gemini://gemini.circumlunar.space/

# Forma abreviada (gemini:// se añade automáticamente)
gping gemini.circumlunar.space

# 3 pings con intervalo de 2 segundos
gping -c 3 -i 2 ejemplo.com

# Forzar idioma español
gping --lang es gemini://ejemplo.com

# Mostrar ayuda
gping -h

Opciones:

* -c COUNT - Número de pings a enviar (predeterminado: 5)
* -i INTERVAL - Intervalo entre pings en segundos (predeterminado: 1)
* -t TIMEOUT - Tiempo de espera en segundos (predeterminado: 5)
* -h` - Mostrar ayuda
* --lang IDIOMA - Forzar idioma (en, es, de, fr, it, ru)

Salida de ejemplo


$ gping -c 3 gemini://gemini.circumlunar.space/
GPING gemini://gemini.circumlunar.space/ (gemini.circumlunar.space:1965) - Enviando 3 pings
Respuesta 1 desde gemini.circumlunar.space: estado=20 (ÉXITO) tiempo=345ms
Respuesta 2 desde gemini.circumlunar.space: estado=20 (ÉXITO) tiempo=320ms
Respuesta 3 desde gemini.circumlunar.space: estado=20 (ÉXITO) tiempo=355ms

--- Estadísticas gping para gemini.circumlunar.space ---
3 paquetes transmitidos, 3 recibidos, 0.0% pérdida
tiempo mínimo/prom/máximo = 320/340.0/355 ms

Idiomas soportados


El programa soporta 6 idiomas:

* 1. Inglés (en) - Predeterminado
* 2. Español (es)
* 3. Alemán (de)
* 4. Francés (fr)
* 5. Italiano (it)
* 6. Ruso (ru)

Detección automática:

El idioma se detecta automáticamente de las variables de entorno:
* LANGUAGE (estándar GNU)
* LC_ALL
* LC_MESSAGES
* LANG

Forzar idioma:

gping --lang es gemini://ejemplo.com
export LANG=es_ES.UTF-8 && gping ejemplo.com

Códigos de estado Gemini


El programa muestra y traduce los códigos de estado del protocolo Gemini:

* 10 - ENTRADA REQUERIDA
* 11 - ENTRADA SENSIBLE
* 20 - ÉXITO
* 30 - REDIRECCIÓN TEMPORAL
* 31 - REDIRECCIÓN PERMANENTE
* 40 - FALLO TEMPORAL
* 41 - SERVIDOR NO DISPONIBLE
* 50 - FALLO PERMANENTE
* 51 - NO ENCONTRADO
Y otros códigos específicos del protocolo

Documentación


Manpage:

# Ver documentación completa
man gping

# Ver sin instalar
man -l gping.1

Sitio web del proyecto:

https://codeberg.org/_-Caleb-_/gping/

Dependencias


- Bibliotecas de desarrollo de OpenSSL
- Biblioteca estándar de C

Instalar dependencias:


Debian/Ubuntu:
sudo apt-get install libssl-dev

Fedora/RHEL:
sudo dnf install openssl-devel

Arch Linux:
sudo pacman -S openssl
Solus Linux:
sudo eopkg install openssl-devel 

Compilación desde código fuente


# Instalar dependencias
sudo apt-get install libssl-dev  # En Debian/Ubuntu

# Compilar
make

# Probar
./gping -c 2 gemini://gemini.circumlunar.space/

Desinstalación


# Si se instaló con make install
sudo make uninstall

# Manualmente
sudo rm -f /usr/local/bin/gping /usr/share/man/man1/gping.1.gz
sudo mandb

Limitaciones


- Cada ping establece una nueva conexión TLS completa (más lento que ICMP ping)
- Algunos servidores pueden limitar conexiones frecuentes
- El tiempo medido incluye el handshake TLS completo

Licencia


Este proyecto está liberado bajo la licencia The Unlicense (dominio público).

Este es software libre y sin restricciones liberado al dominio
público.

Cualquiera es libre de copiar, modificar, publicar, usar, compilar,
vender o distribuir este software, ya sea en forma de código fuente o
como binario compilado, para cualquier propósito, comercial o no
comercial, y por cualquier medio.

En jurisdicciones que reconocen las leyes de derechos de autor, el
autor o autores de este software dedican cualquier y todo interés de
derechos de autor en el software al dominio público. Hacemos esta
dedicación en beneficio del público en general y en detrimento de
nuestros herederos y sucesores. Pretendemos que esta dedicación sea
un acto manifiesto de renuncia en perpetuidad de todos los derechos
presentes y futuros sobre este software bajo la ley de derechos de
autor.

EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO,
EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A LAS GARANTÍAS DE
COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO
INFRACCIÓN. EN NINGÚN CASO LOS AUTORES SERÁN RESPONSABLES POR NINGUNA
RECLAMACIÓN, DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE
CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJA DE, FUERA O EN CONEXIÓN
CON EL SOFTWARE O EL USO U OTROS ACUERDOS EN EL SOFTWARE.

Para más información, por favor refiérase a <https://unlicense.org/>

Consulte el archivo `UNLICENSE` para el texto completo.

Autor


Tanausú Gómez (_-Caleb-_) - 2026

- Código fuente: https://codeberg.org/_-Caleb-_/gping/
- Contacto: A través de Codeberg o correo electrónico

Contribuir


Las contribuciones son bienvenidas. Por favor:

1. Haz fork del repositorio
2. Crea una rama para tu característica
3. Haz commit de tus cambios
4. Abre un Pull Request

Reportar problemas


Por favor, reporta cualquier problema o sugerencia en:
https://codeberg.org/_-Caleb-_/gping/issues
Repositorio en Codeberg

> Simple, rápido, útil - como el protocolo Gemini.