ccplusplus.com
Learn C, C++ Concepts
Wednesday, September 7, 2011
inet_makeaddr example in c
/* inet_makeaddr.c * inet_makeaddr example c code * Demonstrate inet_makeaddr functions; */ #include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
int main(int argc,char **argv){ int x; struct sockaddr_in adr_inet;/* AF_INET */ const char *addr[] = { "44.135.86.12", "127.0.0.1", "172.16.23.95", "192.168.9.1" }; unsigned long net, hst; for ( x=0; x<4; ++x ) { /* * Create a socket address: */ memset(&adr_inet,0,sizeof adr_inet); adr_inet.sin_family = AF_INET; adr_inet.sin_port = htons(9000); if ( !inet_aton(addr[x], &adr_inet.sin_addr) ) puts("bad address."); /* * Split address into Host & Net ID */ hst = inet_lnaof(adr_inet.sin_addr); net = inet_netof(adr_inet.sin_addr); printf("%14s : net=0x%08lX host=0x%08lX\n", inet_ntoa(adr_inet.sin_addr),net,hst); /* * Zero the address to prove later that * we can reconstruct this value: */ memset(&adr_inet,0,sizeof adr_inet); adr_inet.sin_family = AF_INET; adr_inet.sin_port = htons(9000); adr_inet.sin_addr = inet_makeaddr(net,hst); /* * Now display the reconstructed * address: */ // printf("%14s : %s\n\n", "inet_makeaddr", inet_ntoa(adr_inet.sin_addr)); } } /* * OUTPUT * [sgupta@rhel54x64 socket]$ gcc inet_makeaddr.c -o inet_makeaddr [sgupta@rhel54x64 socket]$ ./inet_makeaddr 44.135.86.12 : net=0x0000002C host=0x0087560C 127.0.0.1 : net=0x0000007F host=0x00000001 172.16.23.95 : net=0x0000AC10 host=0x0000175F 192.168.9.1 : net=0x00C0A809 host=0x00000001 [sgupta@rhel54x64 socket]$ */
No comments:
Post a Comment
Newer Post
Older Post
Home
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment