Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में होस्टनेम और IP एड्रेस प्रदर्शित करने का प्रोग्राम


POSIX सॉकेट API (gethostname, gethostbyname, inet_ntoa) का उपयोग करके स्थानीय होस्टनाम और IPv4 एड्रेस प्राप्त करें।

आवश्यक हेडर्स

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

पूर्ण उदाहरण

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

void check_error(int val, const char *msg) {
    if (val == -1) {
        perror(msg);
        exit(EXIT_FAILURE);
    }
}

int main() {
    char host[256];
    struct hostent *host_entry;
    char *ip;
    
    // होस्टनाम प्राप्त करें
    check_error(gethostname(host, sizeof(host)), "gethostname");
    
    // होस्ट एंट्री प्राप्त करें
    host_entry = gethostbyname(host);
    if (!host_entry) {
        herror("gethostbyname");
        exit(EXIT_FAILURE);
    }
    
    // पहला IPv4 एड्रेस प्राप्त करें
    ip = inet_ntoa(*(struct in_addr*)host_entry->h_addr_list[0]);
    if (!ip) {
        perror("inet_ntoa");
        exit(EXIT_FAILURE);
    }
    
    printf("Hostname: %s\n", host);
    printf("IP Address: %s\n", ip);
    
    return 0;
}

आउटपुट

Hostname: mymachine
IP Address: 192.168.1.100

महत्वपूर्ण नोट्स

  • gethostbyname **अप्रचलित** है (POSIX.1-2001)। आधुनिक कोड getaddrinfo उपयोग करे।
  • inet_ntoa थ्रेड-सेफ नहीं है (स्टैटिक बफर रिटर्न करता है)। inet_ntop उपयोग करें।
  • यह केवल पहला IPv4 एड्रेस दिखाता है। मल्टी-होम्ड सिस्टम्स के लिए सभी एड्रेसेज़ इटरेट करें।
  • विंडोज पर: Winsock2.h लिंक करें, WSAStartup/WSACleanup कॉल करें।

आधुनिक विकल्प (getaddrinfo)

// getaddrinfo संस्करण IPv4/IPv6 दोनों सपोर्ट करता है
// अधिक जटिल लेकिन मानक-अनुरूप और थ्रेड-सेफ
  1. C प्रोग्राम: स्ट्रिंग्स के पॉइंटर्स की सरणी और उनके पते प्रिंट करें C प्रोग्राम: स्ट्रिंग्स के पॉइंटर्स की सरणी और उनके पते प्रिंट करें

    C प्रोग्रामिंग में पॉइंटर्स की सरणी (array of pointers) को समझते हैं, विशेष रूप से स्ट्रिंग्स के लिए। पॉइंटर्स की सरणी (स्ट्रिंग्स के लिए) यह एक सरणी है जिसके तत्व स्ट्रिंग के बेस पते को इंगित करने वाले पॉइंटर्स होते हैं। घोषणा और आरंभीकरण: char *a[] = {one, two, three}; यहाँ: a[0] one स्ट्रिं

  1. Tkinter विंडो पर होस्ट नाम और IP एड्रेस प्रदर्शित करें Tkinter विंडो पर होस्ट नाम और IP एड्रेस प्रदर्शित करें

    यूजर का IP एड्रेस प्राप्त करने के लिए, हम पायथन के नेटिव नेटवर्किंग इंटरफेस, socket का उपयोग कर सकते हैं। सबसे पहले, हमें डिवाइस के होस्ट नाम को क्वेरी करना होगा और फिर उससे जुड़ा IP एड्रेस प्राप्त करना होगा।इस उदाहरण में, हम होस्ट नाम और IP एड्रेस प्राप्त करने के लिए socket लाइब्रेरी का उपयोग करेंग

  1. Gmail में अपना ईमेल नाम और पता कैसे बदलें Gmail में अपना ईमेल नाम और पता कैसे बदलें

    ऐसे कई संभावित कारण हैं जिनकी वजह से आप Gmail में अपना ईमेल पता या नाम बदलना चाह सकते हैं। हो सकता है आपने अपने ईमेल पते को अपने किशोरावस्था के शुरुआती वर्षों में बनाया हो और उसे एक हास्यास्पद नाम दे दिया हो। दूसरी ओर, शायद आप सिर्फ एक बदलाव की तलाश में हैं। आपका विशेष कारण जो भी हो, यह लेख प्रक्रिय