এমন কোন লিনাক্স কমান্ড আছে যা আমাকে আমার রাউটারের ম্যাক ঠিকানা পেতে দেয়?
এমন কোন লিনাক্স কমান্ড আছে যা আমাকে আমার রাউটারের ম্যাক ঠিকানা পেতে দেয়?
উত্তর:
আমি এক-লাইনার পছন্দ করি:
arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')
arpingip 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) দিয়ে শুরু হওয়া একটি লাইন হওয়া উচিত এবং রাউটারের পরে আইপি ঠিকানা থাকা উচিত। আপনি যদি আইপিভি 6 ব্যবহার করেন তবে -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(আইপি ping আপনি যদি প্রথমে আপ প্রদর্শন করা হয় না), এবং ম্যাচিং লাইন খুঁজে পেয়েছেন:
$ 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 এর মাধ্যমে ডিফল্ট
আমরা সেই লাইন থেকে তৃতীয় ক্ষেত্র হিসাবে আইপি পাই cutএবং সেই নেটওয়ার্কের কাছের আউটপুট থেকে সেই আইপি এবং তত্ক্ষণাত্ স্থান যুক্ত গ্রেপ লাইন। (স্পেস ম্যাচিং এড়াতে প্রয়োজন বোধ করা হয় 192.168.0.1সঙ্গে 192.168.0.10), মিলেছে লাইন ভালো কিছু হবে:
192.168.0.1 দেব এথ 1 ল্ল্যাড্র সিএ: ফে: বা: হতে: থাকুন: আফ্রিকা পৌঁছনো
সিএ: ফাঃ: বিএ: হতে: থাকুন: এ এফ
echo ${info[5]^^}
সম্পূর্ণ সমাধান নয়, তবে আপনি আরপ-এন পরীক্ষা করে দেখুন।
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) তারপরে আরপ ক্যাশে তার ম্যাক ঠিকানা থাকা উচিত ...
এটি দুঃখের উত্তরের একটি উন্নত সংস্করণ। আইপি -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]'