// Portabilité: Win32/Linux #include <stdio.h> #ifndef WIN32 #include <arpa/inet.h> #else #include <winsock2.h> #endif char* long2ip(unsigned int v) { struct in_addr x; x.s_addr = htonl(v); // passe dans l' ordre reseau return inet_ntoa(x); // et convertit } unsigned int ip2long(char *s) { struct sockaddr_in n; #ifndef WIN32 inet_aton(s,&n.sin_addr); return ntohl(n.sin_addr.s_addr); #else return ntohl(inet_addr(s)); #endif } int main(int argc, char *argv[]) { // ip2long char* str="127.0.0.1"; unsigned int f = ip2long(str); printf( "ip2long(%s) => %u\n\n", str, f ); // long2ip printf( "long2ip(2130706433) => %s\n", long2ip(2130706433) ); return 0; }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.