Convertir une IP en long et un long en IP ( IP2Long, Long2IP )


Contenu du snippet

// 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; 
 } 
 


Compatibilité : C, C++, C++ .NET 1.x, C++ .NET 2.x

Disponible dans d'autres langages :

A voir également

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.