Display Hostname and IP Address in C



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 a different task. Let us see the functions and their tasks.

Function Description
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

#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
", host);    printf("Host IP: %s
", IP); }

Output

Current Host Name: soumyadeep-VirtualBox
Host IP: 127.0.1.1
Updated on: 2019-07-30T22:30:26+05:30

480 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements