Tutorials Point


  Learning Unix Socket
  Socket Quick Guide
  Socket Useful Resources
  Selected Reading

Copyright © 2014 by tutorialspoint



  Home     References     Discussion Forums     About TP  

IP Address Functions


previous next AddThis Social Bookmark Button


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 Printer Friendly

Advertisements


  

Advertisements