इस सेक्शन में हम देखेंगे कि स्थानीय सिस्टम के होस्ट नाम और IP एड्रेस को आसान तरीके से कैसे देखें। हम होस्ट नाम और IP खोजने के लिए एक C प्रोग्राम लिखेंगे।
निम्नलिखित में से कुछ फंक्शन्स उपयोग किए गए हैं। इन फंक्शन्स के अलग-अलग कार्य हैं। आइए फंक्शन्स और उनके कार्यों को देखें।
| फंक्शन | विवरण |
|---|---|
| gethostname() | यह स्थानीय कंप्यूटर के लिए स्टैंडर्ड होस्ट नाम ढूंढता है। |
| gethostbyname() | यह होस्ट डेटाबेस से होस्ट नाम के अनुरूप होस्ट जानकारी ढूंढता है |
| inet_ntoa() | यह IPv4 इंटरनेट नेटवर्क एड्रेस को डॉटेड डेसीमल फॉर्मेट में ASCII स्ट्रिंग में परिवर्तित करता है। |
उदाहरण कोड
#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) {
// यह फंक्शन स्थानीय कंप्यूटर के लिए होस्ट नाम लौटाता है
if (hostname == -1) {
perror("gethostname");
exit(1);
}
}
void check_host_entry(struct hostent *hostentry) {
// होस्ट नाम से होस्ट जानकारी ढूंढें
if (hostentry == NULL) {
perror("gethostbyname");
exit(1);
}
}
void IP_formatter(char *IPbuffer) {
// IP स्ट्रिंग को डॉटेड डेसीमल फॉर्मेट में परिवर्तित करें
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)); // होस्ट नाम ढूंढें
check_host_name(hostname);
host_entry = gethostbyname(host); // होस्ट जानकारी ढूंढें
check_host_entry(host_entry);
IP = inet_ntoa(*((struct in_addr*) host_entry->h_addr_list[0])); // IP स्ट्रिंग में परिवर्तित करें
printf("Current Host Name: %s\n", host);
printf("Host IP: %s\n", IP);
}
आउटपुट (Linux सिस्टम पर टेस्ट किया गया)
Current Host Name: soumyadeep-VirtualBox Host IP: 127.0.1.1