2009-07-15 16 views
5

मेरे पास विंडोज़ में डीडब्ल्यूओआर सॉकेट है। मुझे यह जानने की ज़रूरत है कि यह एक कनेक्शन है जो इंटरनेट पर जाता है या यदि यह स्थानीय कनेक्शन है, तो स्थानीयहोस्ट के कुछ रूपों में। क्या सॉकेट प्राप्त करने का कोई अच्छा तरीका है कि सॉकेट विंडोज़ में सॉकेट से जुड़ा हुआ है? या क्या यह बताने का एक बेहतर तरीका है कि कनेक्शन स्थानीय है या नहीं?मैं सॉकेट से आईपी पता कैसे प्राप्त करूं विंडोज

+0

आपको आईपीवी 6 से सावधान रहना होगा। आपने संभवतः सॉकेट को स्वयं नहीं बनाया है (अन्यथा आप इसे याद कर सकते हैं कि यह किससे जुड़ा हुआ है) ताकि आप शायद कहीं और बनाई गई सॉकेट से निपट रहे हों। और चूंकि यह आपके नियंत्रण से बाहर है, यह आईपीवी 6 का उपयोग कर सकता है। – MSalters

उत्तर

5

शायद आप getpeername() पर कॉल करना चाहते हैं। इसका उपयोग करना बहुत बुनियादी है, आप sockaddr पॉइंटर और एक लंबाई पास करते हैं और यह आपके लिए डेटा में भर जाता है।

यह निर्धारित करने के लिए कि कनेक्शन स्थानीय है, getaddrinfo() आपको सभी उपलब्ध स्थानीय पते की एक सूची दे सकता है। आप स्थानीय पता सूची में getpeername() के परिणाम की तुलना करेंगे।

संबंधित मुद्दे