मैंने अपने स्वयं के एसएमबी क्लाइंट को लागू करने में काफी समय बिताया है, इसलिए मैं यहां कुछ अनुभव साझा करना चाहता हूं।
सबसे पहले अपने उत्पादन कोड में टैंगो का उपयोग न करें क्योंकि एक बार जब आप एसएमबी से परिचित हो जाते हैं तो आपको पता चलेगा कि इसका कार्यान्वयन समस्याग्रस्त है, उदा। यह यूनिकोड का समर्थन नहीं करता है और कुछ मामलों में यह सही ढंग से पैडिंग नहीं है ताकि आप फ़ोल्डर तक नहीं पहुंच सकें। और मैंने यह भी सुना कि लोगों ने कहा कि वे इसके साथ विंडो 7 को कनेक्ट नहीं कर सकते हैं।
दूसरा, मेरे अनुभव संक्षेप में प्रस्तुत करने मैं jcifs guys had said the best लगता है: "जो कोई CIFS एक बहुत ही महत्वपूर्ण बात यह है कि पता करने की जरूरत है लागू करने के लिए चाहता है -" आधिकारिक "CIFS प्रलेखन सही नहीं है और वास्तविकता को प्रतिबिंबित नहीं करता वहाँ कोई विनिर्देश है। । कुछ भी आप IETF ड्राफ़्ट या SNIA दस्तावेज़ (एक ही दस्तावेज़ विभिन्न स्वरूपण) में पढ़ा विश्वास करते नहीं। केवल एक संकेत के रूप में यह प्रयोग करें। निश्चित संदर्भ जो कुछ भी आप तार पर देखते हैं।
WireShark नियम!
... डिजाइन प्रेरणा के लिए जेसीआईएफएस देखें जैसे कि यह फिर से कैसे रखता है एमआईडी और एन्कोड और डीकोड फ्रेम द्वारा मानचित्र में खोज और प्रतिक्रिया।
तो निम्न कमांड को लागू:
- SMB_COM_NEGOTIATE
SMB_COM_SESSION_SETUP_ANDX
SMB_COM_TREE_CONNECT_ANDX
SMB_COM_NT_CREATE_ANDX
SMB_COM_READ_ANDX
SMB_COM_WRITE_ANDX
SMB_COM_CLOSE
- ऊपर के लिए सभी प्रतिक्रियाओं "
केवल एक चीज मैं जोड़ सकते हैं, आप भी पता लगाने के लिए कितने साझा फ़ोल्डर सर्वर को उजागर करता है आप की जरूरत है TRANS2_FIND_FIRST2 अनुरोध/प्रतिक्रिया एक फ़ोल्डर के अंदर और अगर आप चाहते हैं फ़ाइलें क्वेरी करने के लिए लागू करने की आवश्यकता है लागू करें NetShareEnum अनुरोध/प्रतिक्रिया।
बस उत्सुक है, क्या आपका कार्यान्वयन NTLMv2 का समर्थन करता है? – user523234
नहीं। यह उल्लेख करना भूल गया कि प्रमाणीकरण एक और हिस्सा है जिसे लागू करने में काफी समय लगेगा। मैं वर्तमान में केवल एनटीएलएम लागू करता हूं। – Qiulang