सवाल क्या टीसीपीडम्प वास्तविक स्रोत कोड देखना संभव है? [डुप्लिकेट]


इस प्रश्न का उत्तर यहां दिया गया है:

प्रश्न से पहले, मेरे प्रश्न आलेख में कुछ गलत सामग्री हो सकती है। मैं एक लिनक्स नौसिखिया और एक नौसिखिया डेवलपर हूँ।

मेरे पास लिनक्स के बारे में एक सवाल है tcpdump सोर्स कोड। जैसा कि मुझे पता है कि टीसीपीडम्प का उपयोग करके लागू किया गया है libpcap।

  1. कैसे tcpdump काम करता है? मेरी राय यह है कि चूंकि tcpdump बाइनरी निष्पादन योग्य फ़ाइल सेट है पथ। सही?

  2. मेरा मुख्य सवाल यह है कि टीसीपीडम्प सी स्रोत कोड कहां है? मैं पहले से ही tcpdump लाइब्रेरी कोड जानता था जो टीसीपीडम्प होमपेज उपलब्ध है tcpdump

मैं tcpdump असली सी कोड देखना चाहता हूं जिसमें मुख्य फ़ंक्शन, वेरिएबल हेडर फ़ाइलें शामिल हैं। कृपया मुझे स्थान बताएं।

मैं उबंटू 16.04 एलटीएस का उपयोग करता हूं।


2
2017-07-03 09:31


मूल


आप यहां स्रोत पा सकते हैं (github.com/the-tcpdump-group/tcpdump)। डेवलपर की साइट से, आप टीसीपीडम्प गिटहब रिपोजिटरी का उपयोग करके क्लोन कर सकते हैं: git clone https://github.com/the-tcpdump-group/tcpdump.git - Cbhihe


जवाब:


tcpdump में उपलब्ध है main उबंटू में भंडार

स्रोत कोड डाउनलोड करने के लिए tcpdump:

  • सुनिश्चित करें कि आपके पास रिपॉजिटरीज़ सक्षम हैं deb-src के लिए पैकेज टाइप करें xenial (16.04) निम्नलिखित में जोड़ें /etc/apt/sources.list:

    deb-src http://archive.ubuntu.com/ubuntu/ xenial main restricted
    

    बदलने के xenial आपके रिलीज कोडनाम के साथ, आप अपना रिलीज कोडनाम देख सकते हैं:

    lsb_release -sc
    
  • अब भंडारों के साथ सिंक्रनाइज़ करके स्थानीय पैकेज सूची अद्यतन करें:

    sudo apt-get update
    
  • के स्रोत कोड स्थापित करें tcpdump:

    apt-get source tcpdump
    

    यह वर्तमान निर्देशिका पर डाउनलोड और स्वत: निकाला जाएगा; इसके लिए कोई ज़रूरत नहीं है sudo जब तक कि आपके पास निर्देशिका पर लेखन अनुमति न हो।

आपको आवश्यक सभी फाइलें निर्देशिका के अंदर हैं tcdump-<version> जैसे संस्करण के लिए 4.5.1 निर्देशिका होगी tcpdump-4.5.1


8
2017-07-03 09:38



धन्यवाद। मेरे पास एक और प्रश्न है। Tcpdump-4.7.4 निर्देशिका में, मुख्य फ़ंक्शन वाले सी कोड फ़ाइल नाम क्या है - 박주현
@ 박주현 जांचें tcpdump.c - heemayl
धन्यवाद। मैं एक और बार सुनिश्चित करना चाहता हूं। जब हम <pre> टाइप करते हैं tcpdump icmp टर्मिनल में <code>, तो tcpdump.c स्रोत फ़ाइल चलाया जाता है? सही? - 박주현
मुझे माफ करें। टाइपो। <pre> <code> टाइपो है। माफ़ कीजिये - 박주현
@ 박주현 संकलित बाइनरी तब चलाया जाएगा, बाइनरी स्रोत से संकलित है तो हाँ, वही बात .. - heemayl


मुझे यकीन नहीं है कि मैं आपका पहला प्रश्न अच्छी तरह से समझता हूं, लेकिन:

  1. आप पा सकते हैं गिटहब पर स्रोत। जैसा कि डेवलपर की साइट पर इंगित किया गया है, आप क्लोन कर सकते हैं tcpdump गिटहब भंडार का उपयोग कर:

    git clone https://github.com/the-tcpdump-group/tcpdump.git
    
  2. जब आप कोड संकलित करते हैं, तो आपको यह तय करना होगा कि आप अपने निष्पादन योग्य कहां रहना चाहते हैं। बस सुनिश्चित करें कि यह कहीं भी आपका उपयोगकर्ता स्थित है PATH परिवर्तनीय बिंदु या बस अपने संशोधित करें PATH उस स्थान को शामिल करने के लिए।

आप इसे सीधे कैनोलिक रेपो से भी इंस्टॉल कर सकते हैं sudo dpkg -i DEB_PACKAGE या sudo apt-get install DEB_PACKAGE या यदि आप एक कल्पना करते हैं तो एक जीयूआई का उपयोग करें ... उस स्थिति में आपको अपनी बाइनरी मिल जाएगी /usr/sbin/tcpdump। के अतिरिक्त

 whereis tcpdump

आपको अपने बाइनरी (उपरोक्त), आपके स्रोत कोड और आपके मैन पेज फ़ाइलों का स्थान देगा।


4
2017-07-03 09:53



@ 박주현: मेरी खुशी। Heemayl मुझे एक बेहतर जवाब के साथ हराया। आपको उसे जाने वाले उत्तर के रूप में चिह्नित करना चाहिए। - Cbhihe
क्या आप जानबूझकर हमेशा 'अपने' के बजाय 'yr' टाइप करते हैं? - grooveplex