पर पाइथन से संरक्षित वाईफाई से कनेक्ट करना मैं उबंटू लिनक्स के लिए एक सॉफ्टवेयर बना रहा हूं जिसे वाईफाई एपी से कनेक्ट करने की आवश्यकता है। वाईफाई नेटवर्क पूर्वनिर्धारित नहीं है और सॉफ़्टवेयर के एक ही रन के दौरान कई बार बदल सकता है (उपयोगकर्ता वह है जो परिवर्तन का आदेश देता है)। विचार यह है: एसएसआईडी और उनके डब्ल्यूपीए या WEP पासफ्रेज का एक सेट दिया गया है, सॉफ़्टवेयर सिस्टम में कहीं भी कॉन्फ़िगरेशन फ़ाइलों को बदलने की आवश्यकता के बिना, नेटवर्क पर स्विच करने में सक्षम होना चाहिए।लिनक्स
बड़ी समस्या, जैसा कि लगता है, कनेक्शन में पासफ्रेज पास करना है। यहां तक कि मैं अब तक किस प्रकार से परिचालन कर रहा हूं:
- उबंटू 12.10 मशीन वाईफ़ाई डोंगल से सुसज्जित है।
- अजगर, जो सॉफ्टवेयर चलाता है, और जो कनेक्शन
- connman अनुरोध करने के लिए उपयोग किया जाएगा 0.79
- wpa_supplicant v1.0
- डी-बस
पहले तो मैंने सोचा कि यह होगा डी-बस के माध्यम से कनमन को पासफ्रेज पास करना संभव है, लेकिन न तो कनान के इस संस्करण, न ही 1.11, इसके लिए किसी भी विधि का खुलासा करते हैं। तब मुझे पता चला कि फ़ाइल को /var/lib/connman/
निर्देशिका में डंप करना संभव है। फ़ाइल की सामग्री को बहुत सरल कर रहे हैं और इस तरह दिखेगा:
[service_SSID]
Type=wifi
Name=Network-SSID
Passphrase=here-goes-the-passphrase
एक बार इस फाइल को बनाया जाता है, नेटवर्क से कनेक्ट करने के लिए एक सरल net.connman.Service.Connect करने के लिए उपयुक्त सेवा में) विधि कॉल (की आवश्यकता है। समस्या यह है कि जब तक यह पुनरारंभ नहीं होता है तब तक connman कॉन्फ़िगरेशन फ़ाइल को पार्स नहीं करेगा। इसके लिए सूडो विशेषाधिकार, अतिरिक्त समय की आवश्यकता होती है, और सभी चीजों के लिए जोखिम उठता है "अब क्या गलत हो सकता है" चीजें होती हैं। तब मुझे लगा कि पासफ्रेज किसी भी तरह wpa_supplicant डी-बस एपीआई को पारित किया जा सकता है, लेकिन मैं कुछ भी खोजने में विफल रहा।
Google खोजों ने भी मुझे असफल कर दिया है। ऐसा लगता है कि किसी ने कभी पहले ऐसा करने की कोशिश नहीं की।
कमांड sudo iwconfig wlan0 essid <SSID> key s:<PASSPHRASE>
परिणाम SET failed on device wlan0 ; Invalid argument.
त्रुटि में परिणाम। इसके अलावा, इसे सूडो की आवश्यकता होती है जिसे मैं टालना चाहता हूं।
मैंने यह पता लगाने की कोशिश की कि wpa_gui प्रोग्राम कैसे जादू करता है। सबसे पहले मैंने पाया कि इसे सूडो की भी आवश्यकता है, और यह सीधे /var/run/wpa_supplicant/wlan0
पर आदेशों का एक गुच्छा भेजता है। अगर मैं कुछ भी सरल नहीं समझता तो इस व्यवहार को दोहराना मेरे लिए आखिरी उपाय होगा।
तो, बड़ा सवाल यह है: एक WEP/WPA संरक्षित वाईफाई नेटवर्क से कनेक्ट करने के लिए पायथन का उपयोग कैसे करें?
मैं यह भी सोच रहा हूं कि कॉनमैन का उपयोग करना एक अच्छा तरीका है और यदि मुझे नेटवर्क प्रबंधक पर वापस नहीं जाना चाहिए, जो उबंटू का डिफ़ॉल्ट है।
क्या आप मुझे बता सकते हैं कि WEP के लिए सुरक्षा निर्देश क्या होगा? – Natim
क्षमा करें, कभी भी WEP के साथ ऐसा करने की जांच करने की आवश्यकता नहीं है, इसलिए मैं यहां आपकी सहायता नहीं कर सकता। मुझे कल्पना नहीं है कि यह बहुत अलग होगा, हालांकि। – ZalewaPL
@ZalewaPL मुझे पता है कि यह अंतिम उत्तर के बाद से लगभग एक वर्ष है, लेकिन इस [लिंक] के अनुसार (https://developer.gnome.org/NetworkManager/unstable/spec.html#org.freedesktop.NetworkManager) आप नहीं करते यहां तक कि सुरक्षा के प्रकार (WEP, WPA2, आदि) दर्ज करने की आवश्यकता है, आपको बस पासवर्ड (Psk) प्रदान करने की आवश्यकता है। AddAndActivateConnection के पहले पैरामीटर के लिए उद्धरण: 'कनेक्शन सेटिंग्स और गुण; अगर अपूर्ण गायब सेटिंग्स स्वचालित रूप से दिए गए डिवाइस और विशिष्ट ऑब्जेक्ट का उपयोग करके पूरी हो जाएंगी। इसलिए मैंने ** कनेक्शन_परैम ** से ** सुरक्षा ** और ** कुंजी-एमजीएमटी ** हटा दिया ** और यह सफलतापूर्वक कनेक्ट हो गया। :) – kv1dr