GREP और AWK कमांड के दौरान (अपूर्ण) का एक गुच्छा प्राप्त करना


1

जब मैं इस कमांड का उपयोग करता हूं:

arp -a | grep "192.168.0.19" | awk '{ print $4 }'

मैं ये परिणाम प्राप्त करता हूं ... ff: ff मैक एड्रेस वही है जो मैं चाहता हूं, लेकिन मुझे (अपूर्ण) का एक क्षेत्र क्यों मिलता है? मैं बस यही चाहता हूं कि मैं विशिष्ट आईपी से केवल मैक पते का पता लगाऊं जिससे मैं अलग हूं।

ff:ff:ff:ff:ff:ff
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)
(incomplete)

जवाबों:


2

जाहिर है आप हाल ही में उपयोग करने के लिए कोशिश की है 192.168.0.190, 192.168.0.191... 192.168.0.199(नोटिस देखते हैं 10 (incomplete)रों)। इन पते पर नहीं पहुंचा जा सकता है, फिर भी कर्नेल कैश कुछ समय के लिए अपनी अधूरी प्रविष्टियाँ रखता है।

मुझे लगता है कि अगर आपने ऐसा किया तो आप arp -a | grep "192.168.0.19"खुद ही इसका पता लगा सकते हैं।

मेरा arp -a(Ubuntu 14.04.5 LTS पर) कोष्ठक में आईपी पते डालता है। प्रयत्न, कोशिश:

arp -a | grep "(192.168.0.19)" | awk '{ print $4 }'

या आप विकल्प के (incomplete)साथ एस को फ़िल्टर कर सकते -vहैं grep:

arp -a | grep "192.168.0.19" | grep -v "(incomplete)" | awk '{ print $4 }'

ऊप्स! बाद वाला संस्करण उन मेजबानों के मैक पते वापस कर सकता है जिनकी आपको उम्मीद नहीं है। सोचें कि अगर 192.168.0.19अधूरी प्रविष्टि है और जैसे 192.168.0.190पूरी हो गई है तो क्या होगा । मैं इसे शैक्षिक उद्देश्य के लिए यहां छोड़ता हूं।

फिर भी grep -vउपयोगी हो सकता है (आईपी पते के आगे कोष्ठक ध्यान दें)

arp -a | grep "(192.168.0.19)" | grep -v "(incomplete)" | awk '{ print $4 }'

इस तरह से आपको वांछित मैक पता मिलता है, या इस आईपी के लिए कोई पूर्ण प्रविष्टि नहीं है।

अंत में मेरा arpकेवल विशिष्ट आईपी के बारे में जानकारी वापस कर सकते हैं arp -a 192.168.0.19 :। यह शुरू करने का सबसे अच्छा तरीका है। पूरा कमांड इस तरह दिख सकता है:

arp -a 192.168.0.19 | grep -v "(incomplete)" | awk '{ print $4 }'

उफ़ फिर से! हर जगह नुकसान। यदि होस्टनाम 192.168.0.19जैसा है तो यह अंतिम कमांड कोई आउटपुट नहीं लौटाएगा foobar-(incomplete)। संशोधित संस्करण:

arp -a 192.168.0.19 | awk '{ print $4 }' | grep -v "(incomplete)"

हाँ, आप सही हो सकते हैं, इसे मेरे साथ nmap का उपयोग करना होगा। ऐसा लगता है जब मैं एक आईपी पते को पिंग करने के लिए उस कमांड का उपयोग करता हूं, तो "अपूर्ण" खुद को दिखाता है। क्या कोई तरीका है जिससे बचने के लिए जब nmap का उपयोग किया जाता है?
जेम्स डीन

@JamesDean "क्या नैम्प का उपयोग करते समय इससे बचने का एक तरीका है?" - मुझे लगता है कि कोई आसान तरीका नहीं है, लेकिन इसकी कोई जरूरत भी नहीं है। तर्क के arpसाथ या कोष्ठक के साथ मेरा दृष्टिकोण आपकी समस्या को हल करना चाहिए।
कामिल मैकियोरोव्स्की 23
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.