C de la función C init_ntop

C de la función C init_ntop
La función init_ntop () es una característica que se utiliza para convertir una dirección IPv4 de 32 bits y de 128 bits en un formato legible. A diferencia de la función init_ptop, la dirección se convierte en la forma original, ya que se convirtió en alguna forma numérica binaria utilizando init_pton (). Significa que estas ambas funciones se pueden usar para fines de privacidad para el cifrado y el descifrado de las direcciones IP.

Sintaxis

#incluir
# const caracteres *inet_ntop (int Af, const void *fuente, carácter *dst, socklen_t size);

Al igual que Init_Pton, tiene tres argumentos principales como parámetro, pero también tiene un cuarto argumento que se ocupa del tamaño del enchufe/búfer que "DST apunta por" DST."Aquí, describiremos los parámetros en la función init_ntop ().

Argumentos

La descripción general de esta función es que esta función convierte la dirección IP en el formato binario legible. Esta es principalmente una forma numérica de texto simple. Esta conversión se realiza a través del "SRC" especificado, que la convierte en el formato de texto, y luego el valor resultante se coloca en el "DST."Es necesario verificar el tamaño/ espacio del área DST (destino). Porque si el lugar es suficiente para almacenar la dirección, entonces se coloca la dirección resultante. Debe haber una extensión de búfer libre en el segundo caso para agregar la dirección.

El argumento "AF" se refiere a la familia de la dirección de Internet. Puede ser AF_INET para IPv4 de forma predeterminada o AF_INET6 para IPv6. El parámetro que discute "SRC" muestra el búfer que contiene la dirección de Internet IPv4 si el argumento "AF" es AF_INET o IPv6. La dirección proporcionada debe estar en el orden de la red byte.

Al igual que el argumento de origen, el destino 'DS' se refiere al búfer, donde la función init_ntop () almacenará la dirección resultante en forma de una cadena. El 4to especifica el argumento de tamaño que apunta al tamaño del búfer. Se afirma para este argumento que siempre debe especificar un argumento no nulo para un destino. Para las direcciones IPv6, el búfer de almacenamiento debe tener un mínimo de 46 bytes, mientras que, en el caso de las direcciones IPv4, el búfer debe tener al menos 16 bytes.

Es necesario asignar almacenamiento en forma de búfer y debe hacerse en el nivel de prioridad porque el tamaño es importante para almacenar la dirección del valor resultante para evitar problemas relacionados con el tamaño. Hemos definido dos restricciones para permitir que las aplicaciones declaren/ asignen buffers fácilmente de tamaño preciso para tomar direcciones IPv4 e IPv6 en el formato de cadena. Estas restricciones también se definen en la biblioteca .

#define inet_addrstlen 16
#define inet_addrstrlen 46

Valor de retorno

El tipo de retorno es el valor obtenido por la función en ambos casos; o se llama con éxito o termina sin éxito debido a cualquier error. Pero siempre regresa; Es por eso que siempre usamos el tipo de retorno 'int' para la función principal. Si la función es exitosa, inet_ntop () devuelve un puntero que se devuelve al búfer que contiene la dirección después del proceso de conversión. Por otro lado, si la función no tiene éxito, inet_ntop () devuelve un nulo o un '0' y envía el error para rectificar el error fácilmente.

Errores causados ​​por la función init_ntop ()

Muchos posibles errores pueden suprimir la función init_ntop () para realizar de manera efectiva, pero hemos resaltado principalmente dos de ellos aquí.

Eafnosupport

Un parámetro es un número inválido. En otras palabras, no pertenece a una familia de la red apoyada.

Enospc

Este error ocurre debido a menos espacio para almacenar la dirección convertida. El "DST" de destino no es grande, lo que conduce a un almacenamiento suficiente para almacenar el valor resultante o la dirección traducida. Entonces, el error menciona la razón, y luego se eliminan estos errores.

Al igual que inet_pton, init_ntop también está relacionado con la programación de socket. Porque la función de socket contiene el argumento del dominio como un parámetro que pertenece al AF_INET (IP), por lo que se seleccionan en el caso de ambos protocolos, IPv4 o IPv6.

Implementación de init_ntop ()

Antes de comenzar la implementación, hemos visto que el uso y la descripción general de esta función también se comparten en la página manual del sistema operativo Ubuntu Linux para facilitar al usuario su funcionalidad de trabajo.

$ hombre inet_ntop

Usando el comando mencionado anteriormente, el usuario se dirige hacia una página que contiene todas las descripciones de init_ntop (). Hemos adjunto un fragmento para su ayuda.

Ejemplo 1

Hemos implementado los ejemplos en el sistema operativo Linux; Para este propósito, debe tener un editor de texto para escribir códigos fuente en él. Mientras que para los valores resultantes, usaremos el terminal Ubuntu. Abra el editor de texto predeterminado de Ubuntu y use el código fuente mencionado a continuación para demostrar el funcionamiento de init_ntop ().

Init_ntop () funciona opuesto a init_pton; Si tiene algunos conocimientos de init_pton (), comprenderá fácilmente la funcionalidad. De lo contrario, la conversión de direcciones no es demasiado difícil usar estas funciones en el lenguaje de programación C.

Comenzando con las bibliotecas, puede ver que hemos usado un ARPA/INET.H Biblioteca, porque contiene toda la información sobre las direcciones de Internet. Por otro lado, la biblioteca del socket del sistema también debe dirigirse ya que la conexión no es posible sin ella.

#incluir
#incluir

Después de las bibliotecas, hemos utilizado las limitaciones para mencionar las direcciones sobre los protocolos de Internet 4 y 6. La dirección proporcionada aquí es un formato binario convertido en un formato numérico y fácilmente comprensible. Aquí se inicializan dos estructuras tanto para TH4 como para 6 IP. Del mismo modo, ambos buffers se usan aquí para almacenar los valores resultantes. Al llamar a la función init_ntop, uno debe asegurarse de que el tamaño del búfer no sea nulo. Y luego, después de la conversión, se muestra la dirección. En la otra parte, el error debe identificarse. Un caso similar es con SF_INET6.

La ejecución necesita un compilador. Este es un compilador de GCC. Con el compilador, se menciona el nombre del archivo. Su 'ntop.C 'es el nombre de un archivo.

$ GCC -O NTOP NTOP.C
ps./ NTOP

En la ejecución, verá que ambas direcciones para ambos protocolos de Internet se muestran correctamente sin encontrar ningún error.

Ejemplo 2

Este ejemplo implica el uso de las funciones colectivas de inet_ntop () e inet_pton () en un solo código fuente C. La función pton () contiene tres argumentos con la dirección. Al mismo tiempo, inet_ntop () tiene 4 parámetros con el tamaño del búfer. Primero, Pton () convierte la dirección en formato binario con valores numéricos no fácilmente legibles por humanos. Un init_ntop () lo convierte en un formato de texto.

Compilar el código y ejecutarlo.

Puede ver que la dirección proporcionada como una entrada se muestra sin ningún cambio utilizando una cadena simple para crear una dirección en el formato de texto.

Conclusión

Se concluye que el artículo 'Ejemplo de función init_ntop' contiene todas las descripciones generales posibles con respecto al uso de la función NTOP () junto con los argumentos que utiliza. También se han mencionado algunos errores que deben identificarse si algo sale mal con respecto al espacio de almacenamiento o el destino de la fuente. De todos modos, hemos usado dos ejemplos básicos pero impactantes para demostrar el funcionamiento de esta función.