comment convertir une adresse IP en char[] pour Uint32_t en c?
Je écrire un programme qui prend de l'adresse IP comme argument et j'ai voulu enregistrer cette adresse IP dans le unit32_t. Je peux facilement convertir uint32_t en arrière pour le tableau de caractères. Comment convertir une adresse IP en Char Tableau de uint32_t.
Par exemple
./IPtoCHAR 1079733050
uint32_t d'Adresse IP => 64.91.107.58
Mais comment écrire un programme qui effectue l'opération inverse de la tâche?
./CHARtoIP 64.91.107.58
pour la première IPtoCHAR, il est
unsigned int ipAddress = atoi(argv[1]);
printf("Adresse IP %d,.%d.%d.%d \n",((ipAddress >> 24) & 0xFF),((ipAddress >> 16) & 0xFF),((ipAddress >> 8) & 0xFF),(ipAddress & 0xFF));
Mais tous ces ci-dessous ne fonctionne pas
uint32_t aa=(uint32_t)("64.91.107.58");
uint32_t aa=atoi("64.91.107.58");
uint32_t aa=strtol("64.91.107.58",NULL,10);
OriginalL'auteur Muhammad Sohaib Ayub | 2013-03-27
Vous devez vous connecter pour publier un commentaire.
Vous utilisez le
inet_pton
. fonctionEt pour l'inverse, vous devriez avoir utilisé
inet_ntop
.Pour Windows-de la documentation spécifique, voir
inet_pton
etinet_ntop
.Noter que les fonctions peuvent être utilisées pour IPv4 et IPv6.
OriginalL'auteur Some programmer dude
Dans le cas où vous n'avez pas accès à inet_* fonctions ou besoin de coder vous-même en raison de toute autre raison étrange, vous pouvez utiliser une fonction comme ceci:
OriginalL'auteur RS1980