এই সেকশনে আমরা দেখব কীভাবে লোকাল সিস্টেমের হোস্ট নেম (Host Name) এবং IP অড্রেস সহজে পাওয়া যায়। আমরা হোস্ট নেম এবং IP খুঁজে বের করার জন্য একটি সি প্রোগ্রাম লিখব।
নিচের ফাংশনগুলো ব্যবহার করা হয়েছে। এই ফাংশনগুলো আলাদা-अলাদা কাজ করে। ফাংশনগুলো এবং তাদের কাজ দেখে নেওয়া যাক।
| ক্রমিক নং | ফাংশন ও বিবরণ |
|---|---|
| ১ | 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); }
আউটপুট
Current Host Name: soumyadeep-VirtualBox Host IP: 127.0.1.1