Estadísticas del código: PING EN ANSI C, BAJO LINUX. - C/Visual C

Imágen de perfil

PING EN ANSI C, BAJO LINUX.


C/Visual C

Publicado el 21 de Mayo del 2022 por Hilario (127 códigos)
579 visualizaciones desde el 21 de Mayo del 2022
/*
*****************************
PING EN ANSI C, BAJO LINUX.
****************************
otroping.c
*****************************************************
Hilario Iglesias Martinez
*****************************************************
El ejemplo lo forman, el ejecutable con main otroping.c
y otroping.h, los dos ficheros deberán estar bajo
el mismo directorio.

COMPILAR.
$ gcc otroping.c -o otroping
****************************************************
EJEMPLO DE EJECUCION
sudo ./otroping www.mipagina.com
***************************************

ICMP, el Protocolo de control de mensajes de Internet (Control Message Protocol ),
un protocolo de la capa de red, utilizado habitualmente para obtener información
informativa de un host determinado. Consiguiendo así en las señales de retorno,
basicamente la situación activa o inactiva del host.
A lo largo de su historia, utilizado también para floodear o inundar
de peticiones un host determinado. Es de recordar, por ejemplo,
aquellos incipientes programas de mensajería como el protocolo IRC,
sin ningún tipo de salvaguardia, con aquellas bromas de nukear
determinados usuarios de un canal.
Hoy día con aún utilizado para generación de mensajes
de error o control de flujo malicioso. En este caso el
objetivo es doble, degradar el servicio de red con la
inundación de peticiones y/o conseguir que los sistemas
receptores quede inutilizados por no poder procesar todas
las peticiones que les llegan, en
denegación de servicio. (Deny Of Service, DOS)
***************************************************************************
El programa ejemplo que expongo para uso educativo, es un extracto de
varias utilidades obtenidas en internet, modificadas por mi para
resultar mas esclarecedoras y educativas. El programa tiene un
flodeo intensido y continuo. El programa admite la modificación
de parámetros, para su nueva compilación o prueba.
******************************************************************
El progroma se ejecutará bajo consola Linux, y con privilegios de ROOT.
Fue adaptado y realizado en plataforma LINUX Ubuntu 20.04.4 LTS.
Bajo el standard ANSI C.-C-11
Usado el IDE Sublime Text.
Forma de compilación: gcc archivo.c -o archivo
Cuestiones o dudas a: [email protected]
Adaptado según.
Network Working Group
RFC: ICMP- 792
*****
Una salida típica por consola de linux debería ser:
************************************************
4 bytes from (null) (h: 192.168.0.27)(192.168.0.27) msg_seq=13375 ttl=64 rtt = 0.043117 ms.
64 bytes from (null) (h: 192.168.0.27)(192.168.0.27) msg_seq=13376 ttl=64 rtt = 0.038719 ms.
64 bytes from (null) (h: 192.168.0.27)(192.168.0.27) msg_seq=13377 ttl=64 rtt = 0.038763 ms.
64 bytes from (null) (h: 192.168.0.27)(192.168.0.27) msg_seq=13378 ttl=64 rtt = 0.038819 ms.
64 bytes from (null) (h: 192.168.0.27)(192.168.0.27) msg_seq=13379 ttl=64 rtt = 0.038608 ms.
64 bytes from (null) (h: 192.168.0.27)(192.168.0.27) msg_seq=13380 ttl=64 rtt = 0.038917 ms.
64 bytes from (null) (h: 192.168.0.27)(192.168.0.27) msg_seq=13381 ttl=64 rtt = 0.038339 ms.

*****************************************
otroping.h
*********************************
EJEMPLO DE UNA CABECERA ICMP DE RETORNO
-Destino Inaccesible-
****************************
Postel

RFC 792 Protocolo de Mensajes de Control Internet


Mensaje de Destino Inaccesible ("Destination Unreachable Message")

0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Tipo | Código | Suma de Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| sin usar |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Cabecera Internet + 64 bits de datos del datagrama original |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Campos IP:

Dirección de Destino

La red y dirección del origen extraídos de los datos del datagrama
original.

Campos ICMP:

Tipo

3

Código

0 = red inaccesible;

1 = "host" inaccesible;

2 = protocolo inaccesible;

3 = puerto inaccesible;

4 = se necesitaba fragmentación pero DF estaba activado;

5 = fallo en la ruta de origen.

Suma de Control

El complemento a uno de 16 bits de la suma de los complementos a
uno del mensaje ICMP, comenzando por el Tipo ICMP. A la hora de
calcular la suma de control, el valor inicial de este campo es
cero. Esta suma de control puede ser sustituida en el futuro.

Cabecera internet + 64 bits de Datagrama de Datos

*/

26 visualizaciones durante los últimos 90 días


2
0