Copyright © tutorialspoint.com

IP Address Functions

previous next


Advertisements

Unix provides various function calls that will help you manipulating IP addresses. These functions convert Internet addresses between ASCII strings (what humans prefer to use) and network byte ordered binary values (values that are stored in socket address structures).

There are following three function calls which are used for IPv4 addressing:

(1) int inet_aton(const char *strptr, struct in_addr *addrptr):
This function call converts the specified string, in the Internet standard dot notation, to a network address, and stores the address in the structure provided. The converted address will be in Network Byte Order (bytes ordered from left to right). This returns 1 if string was valid and 0 on error.

Following is the usage example:

#include <arpa/inet.h>

(...)
    int retval;
    struct in_addr addrptr
    
    memset(&addrptr, '\0', sizeof(addrptr));
    retval = inet_aton("68.178.157.132", &addrptr); 

(...)

(2) in_addr_t inet_addr(const char *strptr):
This function call converts the specified string, in the Internet standard dot notation, to an integer value suitable for use as an Internet address. The converted address will be in Network Byte Order (bytes ordered from left to right). This returns a 32-bit binary network byte ordered IPv4 address and INADDR_NONE on error.

Following is the usage example:

#include <arpa/inet.h>

(...)

    struct sockaddr_in dest;

    memset(&dest, '\0', sizeof(dest));
    dest.sin_addr.s_addr = inet_addr("68.178.157.132"); 

(...)

(3) char *inet_ntoa(struct in_addr inaddr):
This function call converts the specified Internet host address to a string in the Internet standard dot notation.

Following is the usage example:

#include <arpa/inet.h>

(...)

	char *ip;

	ip=inet_ntoa(dest.sin_addr);

	printf("IP Address is: %s\n",ip);

(...)

previous next

Copyright © tutorialspoint.com