छोटे जवाब नहीं हैं और आसानी से नहीं।
लिनक्स पर lsof /proc/net/unix
UNIX डोमेन सॉकेट के बारे में जानकारी प्राप्त करने के लिए निर्भर करता है । यह इंटरफ़ेस सभी बाध्य सॉकेट्स को सूचीबद्ध करता है, लेकिन यह समापन बिंदुओं का ट्रैक नहीं रखता है। तो आप देख सकते हैं कि क्या कुर्सियां मौजूद हैं, लेकिन आप यह नहीं देख सकते हैं कि उनसे क्या जुड़ा है। कहीं न कहीं इस जानकारी है किसी और काम पर नज़र रखी है, यह होना चाहिए पर नज़र रखी जा या सॉकेट कनेक्शन नहीं होता। मुझे अभी तक कनेक्शन जानकारी प्राप्त करने के लिए कोई भी तंत्र नहीं मिला है।
सूँघने का सवाल थोड़ा और दिलचस्प है, लेकिन कम निराशाजनक नहीं है। "मुझे आसानी से नहीं" से क्या मतलब है कि उस डेटा को छींकने और लपेटने के लिए कोई हुक मौजूद नहीं है। निकटतम एनालॉग tcpdump या Wireshark का उपयोग कर रहा है, दोनों ही वास्तव में हेवी लिफ्टिंग करने के लिए libpcap का उपयोग करते हैं। जबकि नेटवर्क (AF_INET) और UNIX डोमेन (AF_UNIX) दोनों socket()
फ़ंक्शन कॉल का उपयोग करके बनाए गए हैं , दोनों connect()
कनेक्ट करने के लिए उपयोग करते हैं, दोनों का उपयोग करते हैं read()
और write()
डेटा को संसाधित करने के लिए, वे अलग-अलग कर्नेल सबसिस्टम द्वारा नियंत्रित किए जाते हैं। इसका दुर्भाग्यपूर्ण दुष्प्रभाव है कि UNIX डोमेन सॉकेट के साथ काम करने के लिए libpcap को डिज़ाइन नहीं किया गया है।
समस्या के लिए थोड़ा कम पक्ष है। के लिए मैन पेज पर एक नज़र डालें recv(2)
। यह एक निचले स्तर का सिस्टम कॉल है read()
जो इसका उपयोग करता है। recv()
कहा जाता है के लिए एक ध्वज मौजूद है MSG_PEEK
। यह आपको UNIX डोमेन सॉकेट से गुजरने वाले ट्रैफ़िक को सूँघने की अनुमति देगा। तो यह उज्ज्वल पक्ष है, अंधेरे पक्ष यह है कि मेरे ज्ञान का सबसे अच्छा करने के लिए ऐसा करने के लिए डिज़ाइन किया गया कोई भी मौजूदा एप्लिकेशन मौजूद नहीं है। तो आप कुछ विकास के प्रयास देख रहे हैं।
मैं वास्तव में चाहता हूं कि आपके प्रश्न के दोनों भागों में F'YEAH का एक अच्छा सरल उत्तर था ।