"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैं C++ में लिनक्स सर्वर के आईपी पते को प्रोग्रामेटिक रूप से कैसे निर्धारित कर सकता हूं?

मैं C++ में लिनक्स सर्वर के आईपी पते को प्रोग्रामेटिक रूप से कैसे निर्धारित कर सकता हूं?

2024-12-21 को प्रकाशित
ब्राउज़ करें:975

How Can I Programmatically Determine a Linux Server's IP Addresses in C  ?

सी में लिनक्स सर्वर आईपी पते को प्रोग्रामेटिक रूप से निर्धारित करना

परिचय

नेटवर्क संचार और एप्लिकेशन परिनियोजन के लिए लिनक्स सर्वर के आईपी पते की पहचान करना आवश्यक है। यह आलेख लिनक्स मशीन के आईपी पते को प्रभावी ढंग से पुनर्प्राप्त करने के लिए सी में एक प्रोग्रामेटिक समाधान प्रस्तुत करता है। . सर्वर में कई आईपी पते हो सकते हैं, जिसमें एक लोकलहोस्ट पता, एक आंतरिक (प्रबंधन) पता और एक बाहरी (सार्वजनिक) पता शामिल है। लक्ष्य एप्लिकेशन बाइंडिंग के लिए बाहरी आईपी पते को पुनः प्राप्त करना है। यहां एक उदाहरण दिया गया है जो स्थानीय मशीन के सभी IPv4 और IPv6 पतों को प्रिंट करने के लिए getifaddrs() का उपयोग करता है:

#include #शामिल #शामिल मुख्य प्रवेश बिंदु() { struct ifaddrs *ifAddrStruct = NULL; struct ifaddrs *ifa = NULL; शून्य *tmpAddrPtr = शून्य; getifaddrs(&ifAddrStruct); for (ifa = ifAddrStruct; ifa != NULL; ifa = ifa->ifa_next) { अगर (!ifa->ifa_addr) { जारी रखना; } अगर (ifa->ifa_addr->sa_family == AF_INET) {// IPv4 पता tmpAddrPtr = &((struct sockaddr_in *)ifa->ifa_addr)->sin_addr; चार एड्रेसबफर[INET_ADDRSTRLEN]; inet_ntop(AF_INET, tmpAddrPtr, एड्रेसबफ़र, INET_ADDRSTRLEN); प्रिंटफ ("आईपीवी4 पता %s\n", एड्रेसबफर); } अन्यथा यदि (ifa->ifa_addr->sa_family == AF_INET6) {// IPv6 पता tmpAddrPtr = &((struct sockaddr_in6 *)ifa->ifa_addr)->sin6_addr; चार एड्रेसबफर[INET6_ADDRSTRLEN]; inet_ntop(AF_INET6, tmpAddrPtr, एड्रेसबफर, INET6_ADDRSTRLEN); प्रिंटफ ("आईपीवी6 पता %s\n", एड्रेसबफर); } } यदि (ifAddrStruct != NULL) { freeifaddrs(ifAddrStruct); } वापसी 0; }

बाहरी आईपी पते को पुनः प्राप्त करने के लिए, आप एक समान दृष्टिकोण का उपयोग कर सकते हैं लेकिन विशेष रूप से उस इंटरफ़ेस की तलाश कर सकते हैं जो बाहरी नेटवर्क से जुड़ता है। आप एक विशिष्ट इंटरफ़ेस के आईपी पते को पुनः प्राप्त करने के लिए SIOCGIFADDR के साथ siocgifaddr का उपयोग कर सकते हैं। सी में. ये दृष्टिकोण अनुप्रयोगों को नेटवर्क परिवर्तनों के लिए गतिशील रूप से अनुकूलित करने और आवश्यक नेटवर्क कनेक्शन स्थापित करने में सक्षम बनाते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3