সিআইডিআর ব্যাপ্তির জন্য গ্রেপিং


10

সময়ে সময়ে আমি আমার অ্যাপাচি লগ ফাইলগুলির মধ্যে সিআইডিআর রেঞ্জগুলি গ্রেপ করতে চাই। প্রাকৃতিক সীমানায় (/ 8, / 16 এবং / 24) পড়ার জন্য এই রেঞ্জগুলির পক্ষে সহজ তবে / 17 এবং / 25 এর মতো অন্যান্য রেঞ্জগুলির পক্ষে এতটা সহজ নয়।

উদাহরণ:

# 192.168.0.0/16: (easy)
grep " 192\.168\." access_log

# 192.168.128.0/17: (more thought required)
grep -E " 192\.168\.(12[89]|1[3-9][0-9]|2[0-5][0-9])\." access_log

# 192.168.0.0/17: (more thought required)
grep -E " 192\.168\.([0-9]|[0-9][0-9]|1[01][0-9]|12[0-7])\." access_log

# 192.168.128.0/18: (straining my brain)
grep -E " 192\.168\.(1[2-8][0-9]|19[01])\." access_log

এই রেজেক্সগুলি আইপি ঠিকানাগুলিকে অগ্রাহ্য করে যা নেতৃস্থানীয় শূন্যগুলি অন্তর্ভুক্ত করে, যেমন 192.168.001.001অ্যাপাচি লগ ফাইলগুলিতে কোনও সমস্যা নয় তবে অন্যান্য লগ ফাইলগুলিতে হতে পারে। বিশেষত মুদ্রকগুলি নেতৃস্থানীয় জিরো পছন্দ করে বলে মনে হচ্ছে। রিজেক্সে erচ্ছিক শূন্যগুলি যুক্ত করা যথেষ্ট সহজ তবে এটি পুরো জিনিসটিকে কিছুটা আরও কঠিন করে তুলেছে। একটি সহজ উপায় আছে।

কোনও সিআইডিআর রেঞ্জের সাথে মেলে এমন কোনও ফাইল থেকে লাইনগুলি নির্বাচন করার কি সহজ উপায় আছে?

অভিনব রেজেক্স এক্সটেনশানগুলি বিভিন্ন সরঞ্জাম হিসাবে বিবেচিত হবে (যেমন awkবা perlপ্রয়োজনে তবে আমি এটি ওয়ান-লাইনার হতে চাই) যদি তারা কাজটি আরও সহজ করে তোলে। আদর্শভাবে, আমি যা চাই তা হ'ল কিছু

grep "[:CIDR 192.168.128.0/18:]" access_log

একটি সরঞ্জাম যা একটি সিআইডিআর পরিসরকে উপযুক্ত রেজেজেসে রূপান্তরিত করে তাও ঠিক আছে।

$ cidr2regex 192.168.0.0/18
192\.168\.(1[2-8][0-9]|19[01])\.[0-9]{1,3}

অথবা

$ grep -E "$(cidr2regex 192.168.0.0/18)" access_log

বোনাস পয়েন্ট যদি আপনার উত্তরটি আইপিভি 6ও অন্তর্ভুক্ত করে।



উত্তর:


17

: Unsurprisingly নেই,, এই জন্য একটি টুল grepcidr

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

(সংস্করণ 2.0 আইপিভি 6 নেটওয়ার্কগুলির সাথেও কাজ করে)


2
আপনার যদি আইপিভি 6 কার্যকারিতা প্রয়োজন হয় তবে নেট :: সিআইডিআরকে পার্ল ব্যবহার করে একসাথে ভয়ঙ্কর কিছু হ্যাক হতে পারে ...
ভোরেটাক 7

আমি আইপিভি 4 সিডার-গ্রেপিংয়ের জন্য একটি ছোট নোড.জেএস-ভিত্তিক সিএলআই সরঞ্জামও তৈরি করেছি
মিশেল পাঙ্গরাজি

5

সম্প্রতি প্রকাশিত rgxgকমান্ড লাইন সরঞ্জামটি নিয়মিত ভাব প্রকাশ করে যা একটি সিআইডিআর ব্লকের সমস্ত ঠিকানার সাথে মেলে:

$ rgxg cidr 192.168.128.0/18
192\.168\.(19[01]|1[3-8][0-9]|12[89])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])

অথবা

$ rgxg cidr 2001:db8:a:b:c:d::/112
2001:0?[Dd][Bb]8:0?0?0?[Aa]:0?0?0?[Bb]:0?0?0?[Cc]:0?0?0?[Dd]((::[0-9A-Fa-f]{1,4}|::|:0?0?0?0(::|:[0-9A-Fa-f]{1,4}))|:0\.0(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){2})

আরও তথ্যের জন্য, http://rgxg.sf.net দেখুন

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