C Program to display hostname and IP address

CServer Side ProgrammingProgramming

In this section we will see how to see the Host name and IP address of the local system in an easier way. We will write a C program to find the host name and IP.

Some of the following functions are used. These functions have different task. Let us see the functions and their tasks.

FunctionDescription
gethostname()It finds the standard host name for the local computer.
gethostbyname()It finds the host information corresponding to a host name from host database
iten_ntoa()It converts an IPv4 Internet network address into an ASCII string into dotted decimal format.

Example Code

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
void check_host_name(int hostname) { //This function returns host name for
   local computer
   if (hostname == -1) {
      perror("gethostname");
      exit(1);
   }
}
void check_host_entry(struct hostent * hostentry) { //find host info from
   host name
   if (hostentry == NULL) {
      perror("gethostbyname");
      exit(1);
   }
}
void IP_formatter(char *IPbuffer) { //convert IP string to dotted decimal
   format
   if (NULL == IPbuffer) {
      perror("inet_ntoa");
      exit(1);
   }
}
main() {
   char host[256];
   char *IP;
   struct hostent *host_entry;
   int hostname;
   hostname = gethostname(host, sizeof(host)); //find the host name
   check_host_name(hostname);
   host_entry = gethostbyname(host); //find host information
   check_host_entry(host_entry);
   IP = inet_ntoa(*((struct in_addr*) host_entry->h_addr_list[0]));
   //Convert into IP string
   printf("Current Host Name: %s\n", host);
   printf("Host IP: %s\n", IP);
}

Output (Tested on Linux System)

Current Host Name: soumyadeep-VirtualBox
Host IP: 127.0.1.1
raja
Published on 15-Mar-2019 11:18:58
Advertisements