Sunday, February 12, 2012

in_addr v.s. in_addr_t


There are lots function/macros designed to convert them :
in_addr_t inet_addr(const char *cp); in_addr_t inet_lnaof(struct in_addr in); struct in_addr inet_makeaddr(in_addr_t net, in_addr_t lna); in_addr_t inet_netof(struct in_addr in); in_addr_t inet_network(const char *cp); char *inet_ntoa(struct in_addr in);


In fact, both in_addr_t, in_addr is defined in netinet/in.h :


#ifndef _IN_ADDR_T
#define _IN_ADDR_T
typedef __uint32_t in_addr_t;
#endif

struct in_addr {
  in_addr_t s_addr;
};

Struct in_addr contain/hide detail of IP address, so if you need to record IP inside your program, use struct in_addr maybe a better idea then in_addr_t.

No comments: