मैं अपने वाई-फाई इंटरफ़ेस का मैक पता कैसे प्राप्त कर सकता हूं?


10

मैं रास्पबेरी लाइट पर चलने वाले रास्पबेरी पाई जेडडब्ल्यू पर अपने वाई-फाई इंटरफ़ेस का मैक-पता निर्धारित करना चाहता हूं।

क्या कोई ऐसा आदेश है जो मुझे यह बताने के लिए चल सके? क्या /procपेड़ में एक उपकरण है जो इसका खुलासा करेगा?


1
टर्मिनल में दर्ज करें ifconfig wlan0पहली पंक्ति के अंत में हार्डवेयर पता उर्फ ​​मैक होना चाहिए।
लॉटिंग्स

2
@LotPings आप इसका जवाब दे सकते हैं!
जोहान

जवाबों:


9

निम्नलिखित एक बैश स्क्रिप्ट का एक टुकड़ा है जिसका उपयोग मैं ईथरनेट के मैक को निर्धारित करने के लिए करता हूं, या यदि यह वाईफाई के लिए मौजूद नहीं है (पाई जीरो डब्ल्यू के लिए)।

यह ifconfigआवंटित आईपी का पता लगाने की किसी अन्य विधि पर निर्भर नहीं करता है , और बस नेटवर्किंग हार्डवेयर का पता लगाने के लिए सिस्टम की आवश्यकता होती है।

यह जेसी, स्ट्रेच या बस्टर के लिए काम करता है

# Find MAC of eth0, or if not exist wlan0
if [ -e /sys/class/net/eth0 ]; then
    MAC=$(cat /sys/class/net/eth0/address)
elif [ -e /sys/class/net/enx* ]; then
    MAC=$(cat /sys/class/net/enx*/address)
else
    MAC=$(cat /sys/class/net/wlan0/address)
fi

मूल रूप से आप MAC=$(cat /sys/class/net/wlan0/address)Pi3 या Pi Zero W पर मैक इनबिल्ट वाईफाई का उपयोग कर सकते हैं ।

MAC=$(cat /sys/class/net/wlx*/address) स्ट्रेच पर वाईफाई डोंगल पर काम करना चाहिए, लेकिन आप आसानी से वाईफाई और ईथरनेट दोनों के लिए जेसी या स्ट्रेच पर काम करने के लिए उपरोक्त को अनुकूलित कर सकते हैं।


बहुत अच्छा जवाब। धन्यवाद! क्या रास्पियन स्ट्रेच पूर्वानुमानित नेटवर्क इंटरफ़ेस नामों का उपयोग करता है? क्या वे संरचना के नामकरण को प्रभावित करते हैं /sys/class/net?
बेक्स

1
@ बेक्स यह निर्भर करता है; एक ताजा इंस्टॉल डिफ़ॉल्ट रूप से अनुमानित नेटवर्क इंटरफ़ेस नामों का उपयोग करता है, मुझे उन्नयन के बारे में नहीं पता है। पूर्व व्यवहार को पुनर्स्थापित करना सरल है, देखें कि मैं कैसे विस्तार के लिए नेटवर्किंग / वाईफाई / स्टेटिक आईपी सेट कर सकता हूं । हार्डवेयर एन्यूमरेशन प्रक्रिया द्वारा जो भी नाम चुना जाता है उसे दिखाया जाना चाहिए। इस प्रक्रिया को संशोधित करने के कई तरीके हैं।
Milliways

10

टर्मिनल / कंसोल में दर्ज करें ifconfig wlan0। पहली पंक्ति के अंत में हार्डवेयर एड्रेस उर्फ ​​मैक होना चाहिए।

यहाँ एक नमूना आउटपुट (जर्मन लोकेल):

pi@RasPi0w-1:~ $ ifconfig wlan0
wlan0     Link encap:Ethernet  Hardware Adresse b8:27:eb:xx:xx:xx
...

मैंने इस उत्तर को बदल दिया है - लेकिन मुझे नहीं लगता कि ifconfigआगे बढ़ने वाला एक अच्छा विकल्प है।
बेक्स

1
सहमत, सौभाग्य से दो विकल्प हैं।
लोटपिंग्स

7

कई distros की जगह ifconfigके साथ ipतो मैं के उपयोग को हतोत्साहित करेगा ifconfig

Wlan0 इंटरफ़ेस दिखाने के लिए:

ip link show wlan0

या

cat /sys/class/net/wlan0/address

Ref: https://www.linux.com/learn/replacing-ifconfig-ip


मुझे पूरा यकीन है कि ifconfigअभी भी कई सालों तक उपलब्ध रहेगा। इसे हटाने से काफी पुरानी स्क्रिप्ट्स को तोड़ते हुए औसतन 800 kB की बचत होगी।
दिमित्री ग्रिगोरीव

समस्या यह है कि वह व्यक्ति वेतन चाहेगा।
दिमित्री ग्रिगोरीव

1
नए कार्यान्वयन में पदावनत आदेश का उपयोग जारी रखना दुखद है। मैंने इसे काम से संबंधित स्थितियों में देखा है, और इसकी तरह यह आपके सामने समस्या को आगे बढ़ाता है, और एक समय में यह बड़ा हो जाएगा! इसके बजाय इसके साथ काम शुरू करो!
MatsK

2
इस मामले में, ip link showसंभवतः से अधिक उपयुक्त है ip addr show
बॉब

1
अपने डेस्कटॉप सिस्टम में मैं डेबियन स्ट्रेच चलाता हूं, जो कि ifconfigडिफ़ॉल्ट रूप से नहीं लगता है, रास्पियन स्ट्रेच के पास है। मैं ipअधिक पसंद करता हूं ifconfig, हालांकि मुझे लगता है कि बॉब यह कहने में सही है कि इस संदर्भ में linkशायद अधिक उपयुक्त है addr। हालांकि, मैं इसके लिए जो उपाय करता था, वह इसे पढ़ना था /sys/class/net/wlan0/address- कोई अतिरिक्त पार्सिंग आवश्यक नहीं। इसके अतिरिक्त, मैं इसे cat /sys/class/net/wl*/addressआने वाले "प्रेडिक्टेबल नेटवर्क इंटरफ़ेस नामों" के लिए सहेजने के लिए एक भोले प्रयास के रूप में लिखता हूं ।
बेक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.