Point de base
Ip-> entier:
Convertir l'adresse IP en tableau d'octets via le changement de gauche (<<), (&), ou (|) ces opérations à int à int à int à int
Entier-> ip:
Fonctionnement du changement de droite (>>>), passez la droite à 24 bits, puis effectuez l'opérateur (&) 0xff.
Fonctionnement de la droite (>>>), Shift 16 bits à droite, puis effectuez l'opérateur (&) 0xff.
Fonctionnement de la droite (>>>), passez à droite de 8 bits, puis effectuez l'opérateur (&) 0xff.
La valeur entière est effectuée avec l'opérateur (&) 0xFF, et le nombre obtenu est l'IP de quatrième étape.
Pensée
Adresse IP au type int, par exemple, IP est "192.168.1.116", ce qui est équivalent à "." 256, 1, et quand il est complexe, c'est le plus tôt possible.
INT Type to IP Address, Idées similaires, sauf pour la valeur du poids, mais certaines opérations de chaîne
Code
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #define len 16 typedef non signé int uint; ) Retour 0; Char * = 0 && cur <= 255) {total + = cur * pow (256, i);} i -; (char * str, int begin, int end) {int i, j; (Str [i]! = str [j]) {str [i] = str [i] ^ str [j]; i] ^ str [j];}}} / *** String ipstan * / char * iptstr (uint ipint) {char * new = (char *) malloc (len); )); ; = 0; } New [Len- 1] = '/ 0'; RETOUR NOUVEAU;} int Main (void) {char ipstr [Len], * nouveau; "% s s"% s scanf ("% s s"% s scanf ("% s scanf ("% s s "% s scanf ("% s s "% s scanf ("% s s. ", ipstr)! = eof) {ipInt = iPtint (ipstr);