PHP

2010-09-29 7 views
5

के साथ एसएनएमपी जाल उत्पन्न करें मैं PHP से एसएनएमपी जाल उत्पन्न करने के लिए सख्त खोज कर रहा हूं। मुझे स्नैम्पेट का उपयोग करने के तरीकों में निर्माण पता है, लेकिन मैं यह समझने में सक्षम नहीं था कि एसएनएमपी जाल कैसे भेजना है।PHP

क्या कोई इसके लिए कक्षा/कोड स्निपेट जानता है? वेब पर खोज करने से क्ली टूल्स कॉल करने के लिए निष्पादन का उपयोग करने के अलावा कुछ और नहीं आया जो निश्चित रूप से मेरे लिए कोई विकल्प नहीं है।

मुझे लगता है कि यह socket_create और यूडीपी पैकेज मैन्युअल उत्पन्न करने के लिए इसी कार्यक्षमता का उपयोग करने आवश्यक होगा ...

उत्तर

5

जहाँ तक मुझे पता है, वहाँ जाल/php के साथ सूचित पैदा करने के लिए कोई मूल तरीका है। यहां तक ​​कि एसएनएमपी एक्सटेंशन केवल प्राप्त करने और अनुरोध सेट करने की अनुमति देता है। तो इसे पूरा करने का एकमात्र (त्वरित) तरीका नेट-स्नैम्प जैसे बाहरी उपकरण को कॉल करना है। उचित कमांड लाइन की तरह

snmptrap -v 1 -c public manager enterprises.spider test-hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1 

कुछ हो प्रबंधक के लिए एक क्रियाशील linkup जाल भेज देंगे इंटरफ़ेस 1 (manpage से लिया गया) के लिए, होगा। Php से इसे निष्पादित करने के लिए नेट-स्नैम्प बाइनरी सिस्टम के पथ पर होनी चाहिए और आप या तो exec, shell_exec या proc_open पर कॉल कर सकते हैं।

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

+0

आपके उत्तर के लिए धन्यवाद - लेकिन बाहरी कार्यक्रम का उपयोग निश्चित रूप से कोई विकल्प नहीं है। मैं आपके उत्तर में दिए गए लिंक देखूंगा और इसे अपने आप आज़माउंगा। – glutorange

2

कोई कोर SNMP जाल पुस्तकालयों रहे हैं। या यहां तक ​​कि किसी भी मूल पुस्तकालय जो आपको एक एसएनएमपी udp पैकेट पैकेज करने में मदद करेगा। हालांकि मुझे इस त्याग किए गए प्रोजेक्ट को मिला। http://code.google.com/p/php-snmp/ जो आपको एक साधारण जाल भेजने की आवश्यकता होगी सबसे अधिक प्रदान करता है।

एक छोटी सी और अधिक सक्रिय लेकिन एक बहुत अधिक जटिल होने के लिए http://www.activexperts.com/network-component/howto/snmpts/php/

1

मैं जानता हूँ कि इस सवाल पुराना है लगता है, लेकिन मैं तो बस गूगल के माध्यम से इसे भर में आया था, और बाकी मामले में किसी को मेरी निष्कर्षों के अनुसार इसे अद्यतन करने के बारे में सोचा यहां भी भूमि है। जैसा जैक ने उत्तर दिया, नेट-स्नैम्प का उपयोग करना सबसे अच्छा समाधान है। हालांकि मूल पोस्ट ने कहा कि वह किसी भी बाहरी घटकों का उपयोग नहीं करना चाहता था, मान लीजिए कि अब आप कई लिनक्स डिस्ट्रो के लिए एपीटी-गेट (पैकेज php-snmp देखें) हालांकि net-snmp जोड़ सकते हैं, और मुझे यकीन है कि इंस्टॉल करना विंडोज़ उतना ही आसान होगा। इसका उपयोग करने का बड़ा लाभ, PHP 5.3.3 के रूप में है, PHP को विरासत में एसएनएमपी का उपयोग करने के लिए अंतर्निहित इंटरफ़ेस फ़ंक्शन हैं, ताकि आपको exec, shell_exec या proc_open का उपयोग करने की आवश्यकता न हो। सब कुछ एक PHP वातावरण में किया जा सकता है। http://php.net/manual/en/book.snmp.php

+0

आपके उत्तर के लिए धन्यवाद - लेकिन मैं PHP में इस कार्यक्षमता के बारे में अच्छी तरह से जानता था। मैं था - और अभी भी - एसएनएमपी जाल भेजने के लिए एक विधि खोज रहा हूँ। एसएनएमपी जीईटी/एसईटी का उपयोग करना मुझे जरूरी नहीं है। माफ़ कीजिये – glutorange