আমার রাউটারের আইপি অ্যাড্রেসটি (কীভাবে) দেখানো যায়?


22

আমার রাউটারের কেবলমাত্র আইপি ঠিকানা পেতে আমি কমান্ডটি চালাতে পারি?

এই কমান্ডটি দিয়ে আমার আমার রাউটারের কেবলমাত্র আইপি থাকা উচিত, উদাহরণস্বরূপ, পুরো রাউটিং টেবিলটি (যখন আমি চালাচ্ছি route -n)।

উত্তর:


22

এক-liners,:

  • nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2
  • nm-tool | grep -i gateway | awk '{print $2}
  • netstat -nr | awk '$1 == "0.0.0.0"{print$2}'
  • arp -n | awk '{print $1}' দ্রষ্টব্য: আপনার মেশিনটি যদি কেবলমাত্র নেটওয়ার্কে একমাত্র হয় তবে কাজ করে
  • ip route show | grep -i 'default via'| awk '{print $3 }'

আউটপুট: 192.168.0.1আমার জন্য

দ্রষ্টব্য :

15.04 এর পরে এবং তারপরে, নেই nm-tool, তাই ব্যবহার করুন nmcli dev show <IFACE>। উদাহরণ স্বরূপ,

$ nmcli dev show wlan7 | grep GATEWAY                                                                                    
IP4.GATEWAY:                            192.168.0.1
IP6.GATEWAY:                            

সম্পাদনা এবং অতিরিক্ত তথ্য

যেমন আপনি কমান্ডটি পরীক্ষা করে দেখতে পাচ্ছেন, আমরা আউটপুট নিয়েছি nm-tool(যা নোট করে, নেটওয়ার্কম্যানেজারের কাছ থেকে তথ্য নেয়), শব্দযুক্ত লাইন খুঁজে বের করে gateway, প্রতিধ্বনির সাথে তথ্যের চেয়ে মুদ্রণ (স্পেস দ্বারা পৃথক করা), এবং তারপরে পুরোটির দ্বিতীয় মাত্রটি কেটে ফেলা হয় আউটপুট। দ্রষ্টব্য, আপনার যদি সেখানে দুটি বা ততোধিক সংযোগ থাকে তবে আপনার উপরের xargs echo | cut -d' ' -f2অংশটি সরানোর প্রয়োজন হতে পারে এবং এর সাথে প্রতিস্থাপন করতে পারেন awk '{print $2}'; অন্য কথায় পুরো লাইনটি দেখতে এমন হবে nm-tool | grep -i gateway | awk '{print $2}'। বিকল্প nm-tool | grep -oP '(?i)gateway:\s*\K\S+'হিসাবে আপনি মন্তব্যগুলিতে অবিনাশ রাজ প্রস্তাবিত হিসাবে ব্যবহার করতে পারেন । আপনি দেখতে পাচ্ছেন যে এখানে বিশেষ কিছুই করা হয়নি, এবং পুরো অগ্নিপরীক্ষাটি কেবল আউটপুট সম্পাদনা সরঞ্জাম যেমন কাট, আওক এবং গ্রেপ ব্যবহার করার জন্য অনুশীলন।

গেটওয়ের তথ্য পাওয়ার আরেকটি পদ্ধতি হ'ল nmcli dev list(হ্যাঁ, এখনও নেটওয়ার্ক পরিচালকের উপর নির্ভর করে) কমান্ডটি দিয়ে। nmcliনেটওয়ার্ক ম্যানেজারের কমান্ড - লাইন সংস্করণ। আপনি চালাতে পারেন nmcli dev list | grep -i routersবা আপনি চালাতে পারেন nmcli dev list | grep -i 'gw ='। আবার, আপনি চাইলে কাঙ্ক্ষিত আইপি ঠিকানা ব্যতীত অন্য সমস্ত তথ্য কাটাতে অনুশীলন করতে পারেন।

যেহেতু মূল প্রশ্নে কেবলমাত্র ডিফল্ট গেটওয়েটি প্রিন্ট করা ছিল কেবলমাত্র স্পেসিফিকেশন, আমি এখানে এনএম-সরঞ্জামের আউটপুট নির্ভর করছি। নেটওয়ার্ক ম্যানেজারটি উবুন্টুর সাথে ডিফল্টরূপে আসে, এটি উবুন্টুর নেটওয়ার্ক সংযোগ পরিচালনার মানক উপায়। যদি আপনি অন্য কিছু ব্যবহার করেন, যেমন ভিক্ট বা wpa_cli এর মাধ্যমে সংযুক্ত হন, এনএম-সরঞ্জাম আপনাকে কোনও উত্তর সরবরাহ করবে না। এই ক্ষেত্রে আপনি অন্যান্য ব্যক্তির জবাব আরও কার্যকরভাবে পেতে পারেন।

আরও একটি ডিস্ট্রো-নিউট্রাল এবং কনফিগার-নিউট্রাল বিকল্প ব্যবহার করা হবে netstat -nযা কার্নেল রাউটিং টেবিলের অনুরূপ ব্যবহার করে route -n। এটি আউটপুট নম্র, বিস্ময়ের কিছু নেই।

  Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     0.0.0.0         255.255.255.0   U     9      0        0 wlan0

এবং আপনার কাঙ্ক্ষিত তথ্য কাটা উপায় এখানে: netstat -nr | awk '$1 == "0.0.0.0"{print$2}'

অন্য একটি, পাশাপাশি নিরপেক্ষ: arp -n | awk '{print $1}'


সরলnm-tool | grep -oP '(?i)gateway:\s*\K\S+'
অবিনাশ রাজ

ধন্যবাদ অবিনাশরাজ! আমি গ্রেপ পড়াশোনা করি নি এবং গভীরতার সাথে এতটা অজানাতে পারি না যে আমার কাছে ইতিমধ্যে যে জ্ঞান ছিল তার উপর পরিচালনা করে। এটি জেনে রাখা ভাল হবে
সের্গেই কোলোডিয়াজনি

সম্ভবত এটি আমার কনফিগারেশনের কিছু (অতিরিক্ত) অদ্ভুততার কারণে, তবে অ্যাডাপ্টারযুক্ত একটি মেশিনে eth0এবং wlan0উভয় সক্রিয়ভাবে সংযুক্ত কিন্তু কেবলমাত্র গেটওয়েতে কনফিগার করা রয়েছে wlan0, nm-tool | grep -i gateway | xargs echo | cut -d' ' -f2কেবল আউটপুটগুলি 0.0.0.0nm-tool | grep -oP '(?i)gateway:\s*\K\S+'দুটি লাইন আউটপুট দেয়: 0.0.0.0তারপরে 192.168.1.1। ( উপায়গুলি ip route ...route -n ...উপায়গুলি কেবলমাত্র উত্পাদন করে 192.168.1.1, যা আমি সবচেয়ে পছন্দসই ফলাফল হিসাবে বিবেচনা করব))
এলিয়াহ কাগন

network-managerউদাহরণস্বরূপ ifupdownবা ifconfig.. দ্বারা যদি নেটওয়ার্ক পরিচালনা না করা হয় তবে এটি কাজ করবে না .. এই ক্ষেত্রেগুলি nm-toolকাঙ্ক্ষিত আউটপুট উত্পন্ন করে না ... সংক্ষেপে এই উত্তরটি সম্পূর্ণরূপে পরিচালিত নেটওয়ার্কের উপর নির্ভর করে network-manager..
হিমাইল

@ এলিয়াকাগান আহ, আমি দেখছি। আমার কমান্ডের ক্ষেত্রে এটি এতে 'গেটওয়ে'র সাথে লাইনগুলি সন্ধান করে, তারপরে এটিকে ফাঁকা করে পৃথক করা একটি লাইন হিসাবে প্রতিধ্বনিত করে এবং এটিতে দ্বিতীয় আইটেমটি কেটে দেয়। আপনার সেখানে দুটি যেমন রেখা আছে, আমার কমান্ড কেবল তাদের একটি প্রিন্ট করে। এক্ষেত্রে অবিনাশের আদেশ আরও ভাল। 0.0.0.0 হিসাবে, এখানে সম্পর্কিত কিছু । হিমাইলের মন্তব্য হিসাবে, হ্যাঁ, এটি সত্য, এবং কেবলমাত্র আউটপুট দেখানো ছাড়া ওপি-র প্রশ্নে কোনও স্পেসিফিকেশন ছিল না
সের্গি কলডিয়াজহনি

7

আপনি এটি অনেক উপায়ে খুঁজে পেতে পারেন

ip route show default

একটি ভাল প্রশ্ন, আপনি বা কীভাবে আউটপুটটি আকার দিতে চান?

ip route show | awk '/default/ {print $3}'

tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2}' | uniq

মন্তব্যগুলি থেকে - (অবিনাশ রাজকে ধন্যবাদ 0

tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'

আপনি ণ করার দরকার নেই জন্য না uniqশুধু tracepath -m 1 8.8.8.8 | awk '/1:/ {print $2;exit}'5in হবে।
অবিনাশ রাজ

অনেক পছন্দ। আমার সিস্টেমে এটি দুইবার ডাব্লু / ও ইউনিক প্রিন্ট করে। আপনার সমাধানটিও কাজ করে।
প্যান্থার


যাইহোক, @ বোডি.জাজেন, আপনার উত্তরের বিভিন্নতা আছে, ট্রেস্রোয়েট ব্যবহার করুন। একই ধারণা বিভিন্ন কমান্ড, ডান?
সের্গেই কোলোডিয়াজনি

@ নিশ্চিত হোন, সম্ভবত কমান্ড এবং ফিল্টারিং বিকল্পগুলির একটি দীর্ঘ তালিকা রয়েছে, সেড, অ্যাজক, পারল, গ্রেপ ...
প্যান্থার

6

আপনি সাধারণত ব্যবহার হিসাবে route -n, আপনি এই sedসমাধান সঙ্গে মিলিয়ে চেষ্টা করতে পারেন route -n:

route -n | sed -nr 's/(0\.0\.0\.0) +([^ ]+) +\1.*/\2/p' 

এখানে একটি পরীক্ষা:

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.0.0     0.0.0.0         255.255.240.0   U     0      0        0 eth0

$ route -n | sed -nr 's/(0\.0\.0\.0) +([^ ]+) +\1.*/\2/p' 
192.168.1.1

অন্য উপায় ব্যবহার করা হবে grep:

$ route -n | tr -s ' ' | grep -Po "(?<=0\.0\.0\.0 )[^ ]+(?= 0\.0\.0\.0)"
192.168.1.1

@ অভিনাশরাজ যেমন উল্লেখ করেছেন যে এটি কেবল ব্যবহার করেই করা যেতে পারে grep( ব্যবহার করে স্পেসগুলি নিবার প্রয়োজন নেই tr):

route -n | grep -Po "0\.0\.0\.0\s*\K\S+(?=\s*0\.0\.0\.0)"
192.168.1.1

আপনার ব্যবহার করার দরকার নেই tr, গ্রেপ একা কাজটি করবেনroute -n | grep -Po "0\.0\.0\.0 \s*\K\S+(?=\s*0\.0\.0\.0)"
অবিনাশ রাজ

1

আমি এটি প্রায়শই ব্যবহার করি:

route -n | awk '{ print $2 }' | grep -Eo '[1-9]{0,3}\.[1-9]{0,3}\.[0-9]{0,3}\.[1-9]{0,3}'

যদি ঠিকানা হয় 192.168.0.1?
অবিনাশ রাজ

1

সিস্টেমে কোনও ওয়েব ব্রাউজারে অ্যাক্সেস থাকলে আপনি http://whatsmyrouterip.com/ এ যেতে পারেন এবং এটি কোনও আদেশ ছাড়াই আপনার আইপি খুঁজে পেতে সক্ষম হবে।

অন্যথায় কেবল টার্মিনালটি খোলার এবং ip route | grep defaultকরা যথেষ্ট হওয়া উচিত। এটি আপনার নেটওয়ার্ক ইন্টারফেসের উপর নির্ভর করে একের বেশি দিতে পারে।


0

আমি এটি প্রায়শই এবং সহজে মনে রাখার জন্য ব্যবহার করি:

route | grep default | awk '{print $2}'

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.