क्या कोई लिनक्स कमांड है जो मुझे मेरे राउटर का मैक पता प्राप्त करने की अनुमति देता है?
क्या कोई लिनक्स कमांड है जो मुझे मेरे राउटर का मैक पता प्राप्त करने की अनुमति देता है?
जवाबों:
मुझे वन-लाइनर्स पसंद हैं:
arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')
arping
के आउटपुट से डिफ़ॉल्ट गेटवे आईपी पते के साथ जुड़े मैक को दिखाता ip route show match 0/0
है awk
।
iwconfig | grep "Access Point"
कमांड के साथ सूचीबद्ध दो में से एक देता है । मुझे लगता है कि जो दो से बंद था वह वायर्ड कनेक्शन का कैश्ड संस्करण था, जिसे मैंने वायरलेस रूट प्राप्त करने का प्रयास करने के लिए अनप्लग किया था।
ओब्लेटेड कमांड ifconfig
(8), arp
(8) या route
(8) का उपयोग न करें । नए कमांड का उपयोग करें जो उन्हें प्रतिस्थापित करते हैं और अधिक कर सकते हैं, ip
(8)।
ip route list
यह देखने के लिए उपयोग करें कि default
आपकी मशीन में कौन सा राउटर है। यह एक लाइन विच होना चाहिए जो default
(या 0.0.0.0
) से शुरू होता है और इसके बाद राउटर के लिए आईपी एड्रेस होता है। आप IPv6 का उपयोग करता है, तो बस जोड़ने -6
, स्विच ip -6 route list
।
default via 192.168.11.1 dev eth0 proto static
default
राउटर के आईपी पते के मैक पते को ip neigh
देखने के लिए, आईपी एड्रेस और मैक एड्रेस के बाद लाइन का उपयोग करें और देखें lladdr
।
192.168.11.1 dev eth0 lladdr 1c:af:f7:XX:XX:XX REACHABLE
यदि आप अपने राउटर के आईपी को नहीं जानते हैं, तो यह आपके गेटवे की सबसे अधिक संभावना है जिसे आप कमांड सेroute
प्राप्त कर सकते हैं :
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
झंडे के साथ लाइन पर ध्यान दें UG
। Gateway
उस पंक्ति के कॉलम का पता वही है जो आप खोज रहे हैं। तब का पालन करें 2707974 के सुझाव के साथ arp -n
(आईपी पिंग अगर यह पहली बार में दिखाई नहीं देता है), और मिलान लाइन पाते हैं:
$ arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.0.1 ether 00:11:22:33:44:55 C eth0
192.168.0.2 ether 66:77:88:99:aa:bb C eth0
यहां, आपके राउटर का मैक होगा 00:11:22:33:44:55
।
arp -n | grep `route -n | awk '/UG/{print $2}'` | awk '{print $3}'
यहाँ एक लाइनर है जो काम करता है dash
, bash
और zsh
:
ip neigh|grep "$(ip -4 route list 0/0|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'
ip -4 route list 0/0
कुछ इस तरह देता है:
डिफ़ॉल्ट रूप से 192.168.0.1 देव एथ 1 प्रोटो स्टैटिक मेट्रिक 100
हमें उस लाइन से तीसरे फील्ड के रूप में IP मिलता है cut
और grep लाइन जिसमें उस IP होती है और नेटवर्क पड़ोस के आउटपुट से उसके तुरंत बाद स्पेस होता है। (अंतरिक्ष के मिलान से बचने के लिए आवश्यक है 192.168.0.1
के साथ 192.168.0.10
), मिलान किया लाइन की तरह कुछ होगा:
192.168.0.1 देव एथ 1 lladdr ca: fe: ba: be: be: af पहुंच
सीए: एफई: BA: BE: BE: वायुसेना
echo ${info[5]^^}
एक पूर्ण समाधान नहीं है, लेकिन आप arp -n की जांच करते हैं।
ddd@mmm ~ $ arp -n
Address HWtype HWaddress Flags Mask Iface
xxx.xxx.xxx.xxx ether 00:e0:1e:b4:12:42 C eth0
yyy.yyy.yyy.yyy ether 00:14:78:52:28:d2 C wlan0
ping 192.168.0.1
) तो आपको arp cache पर इसका MAC एड्रेस होना चाहिए ...
यह दु: ख के उत्तर का एक उन्नत संस्करण है। आईपी -4 रूट सूची 0/0 के लिए एक से अधिक लाइन (आईपी) वापस करना संभव है, जिस स्थिति में पूर्ण एक लाइनर काम नहीं करता है। तो निम्न संशोधित संस्करण केवल पहली पंक्ति का उपयोग करता है जो आईपी -4 मार्ग सूची 0/0 रिटर्न देता है।
ip neigh|grep "$(ip -4 route list 0/0|head -1|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'