Red de conocimiento informático - Conocimiento del nombre de dominio - Estoy buscando urgentemente una pregunta de programación en lenguaje C sobre dirección IP y máscara de subred (implementada en lenguaje C)

Estoy buscando urgentemente una pregunta de programación en lenguaje C sobre dirección IP y máscara de subred (implementada en lenguaje C)

No sé si alguna vez has estudiado redes de ordenadores. Si no, aquí hay una breve introducción a las direcciones IP y máscaras.

La dirección IP es de 32 bits, que son 4 bytes. El valor puede ser arbitrario.

La máscara también es de 32 bits. Generalmente se recomienda que los primeros bits sean todos 1 y los últimos bits sean 0. Entonces esta pregunta:

(1) Siempre que sea de 32 bits, es válida.

(2) Determine si todos los 1 van seguidos de todos los 0, lo que se puede implementar con el siguiente código:

#includelt; void main()

{

yanma sin firmar, bianliang=0x80000000;

int isyanma=0, i

printf(" Utilice hexadecimal Introduzca un entero de 32 bits\n");

scanf("x",& yanma);

for(i=0;ilt;32;i)

{

if(yanma==bianliang)

{

isyanma=1

romper; /p >

}

bianliang=bianlianggt; gt;

bianliang =0x80000000

}

si( isyanma)

printf("x es una máscara\n", yanma

else

printf("x no es una máscara\n",); yanma);

}

(3) Si los primeros n bits de la máscara son 1, entonces todas las direcciones IP válidas de la red donde se encuentra esta IP son los primeros n bits. de esta dirección IP sin cambios, y lo siguiente Los bits varían de 0 a 1. Por ejemplo, si la dirección IP es 1.1.1.1 y la máscara es FFFF0000, entonces todas las direcciones IP válidas de la red donde se encuentra esta dirección IP son de 1.1.0.0 a 1.1.255.255.

(4) A ambas direcciones IP se les aplica un AND binario con la máscara para ver si los resultados son los mismos. Si son iguales, están en la misma subred; de lo contrario, no están en la misma subred. Esto es fácil de implementar usando c.