tipos subredes subred significa que publicas mascara direcciones calculadora c++ format ip-address

c++ - significa - subredes



¿Cómo convertir una cadena de formato de dirección IP estándar a hexadecimal y larga? (5)

Creo que te puedes encontrar con un problema de orden de bytes. Desde la página man:

Todas las direcciones de Internet se devuelven en orden de red (bytes ordenados de izquierda a derecha). Todos los números de red y las partes de direcciones locales se devuelven como valores enteros de orden de bytes de máquina.

¿Alguien sabe cómo obtener la dirección IP en decimal o hex desde la cadena de formato de dirección IP estándar ("xxx.xxx.xxx.xxx")?

Intenté usar la función inet_addr () pero no obtuve el resultado correcto.

Lo probé en "84.52.184.224"

la función devolvió 3770168404 que no es correcta (el resultado correcto es 1412741344).

¡Gracias!


El resultado devuelto es correcto, los bytes se ordenan en orden de bytes de red

84 => 0x54 52 => 0x34 184 => 0xb8 224 => 0xe0 0xe0b83454 => 3770168404


Las funciones htonl, htons, ntohl, ntohs se pueden usar para convertir órdenes de bytes locales y de red.


Revise cuidadosamente el siguiente enlace:

http: // msdn.microsoft.com/en-us/library/ms738563(VS.85).aspx


Acaba de invertir los bytes de lo que esperaba: están en orden de bytes de red

3770168404 = 0xE0 B8 34 54 network byte order | | / / / / / / / / // / / / / / / | | 1412741344 = 0x54 34 B8 E0 machine order

Puede usar ntohl () convertir de orden de red a orden de máquina.