আমি রাউটারের মাধ্যমে প্রেরিত নেটফ্লো রেকর্ডগুলি সংগ্রহ করতে জেএনসিএ লাইব্রেরি ব্যবহার করছি । রাউটার দ্বারা প্রেরিত নেটফ্লো রেকর্ডের সংস্করণ 9 version
নেটফ্লো প্যাকেটটি ওয়্যারশার্ক থেকে পর্যবেক্ষণ করা হয়েছে টেমপ্লেট আইডি 263 সহ ফ্লো সেটগুলিতে প্রারম্ভিক অক্টেটস এবং রেসপনার অক্টেটস সম্পর্কিত ডেটা রয়েছে যা কোনও প্রবাহের সাথে সম্পর্কিত বাইটের সংখ্যা নির্ধারণ করতে ব্যবহার করা যেতে পারে।
তবে সমস্যাটি হ'ল এই মানগুলি jcna দ্বারা প্রাপ্ত করা যায় না। এটি অক্টেটের জন্য সর্বদা শূন্য প্রদর্শন করে।
currOffset = t.getTypeOffset(FieldDefinition.InBYTES_32);
currLen = t.getTypeLen(FieldDefinition.InBYTES_32);
if (currOffset >= 0 && currLen > 0) {
dOctets = Util.to_number(buf, off + currOffset, currLen) * t.getSamplingRate();
}
এটি কোড বিভাগ যা ডক্টেটস পেতে ব্যবহৃত হয়। এটি 263 টেমপ্লেট আইটেমের জন্যও শূন্য দেয়।
কিন্তু যখন এটি নেটফ্লো টেম্পলেট আইডি 263 এর সাথে শ্রদ্ধার সাথে গণনা করা হয় তখন এটি সঠিক তথ্য দেয়। (আরম্ভকারীকে অক্টেট দেয় এবং রেসপনার পেতে অক্টেট 46 টি 50 দিয়ে প্রতিস্থাপন করা উচিত কারণ নির্দিষ্ট রেকর্ডটির দৈর্ঘ্য 4 বাইট হয়)
dOctets = Util.to_number(buf, off + 46, 4)
46 যেখানে ইনিটিয়েটার অক্টেটস রেকর্ডটি সেই নির্দিষ্ট নেটফ্লো প্যাকেটে রয়েছে ((ওয়্যারশার্ক রেকর্ডটি ব্যবহার করে পেয়েছি))
জেএনসিএ নিয়ে কি সমস্যা? আশা করি, jcna এর সাথে পরিচিত কেউ আমাকে এই বিষয়ে কিছুটা সহায়তা দিতে পারেন।
getTypeOffset
এবং থেকে কোন মানগুলি ফিরে আসে তা আপনি পরীক্ষা করেছেন getTypeLen
?
Template.getTypeOffset()
মনে হচ্ছে। আপনি যা করছেন তার সাথে এটি কি কাজ করে? (আপনি বলার জন্য যথেষ্ট কোডটি দেখান নি; কি buf
?)
java.util.Properties
নিম্ন স্তরের ফর্ম্যাটকে পার্সিং করে স্ট্রিং-টাইপ করা হয়েছে? কক্ষপথ থেকে Nuke। এই লাইব্রেরিটি লেখার সময় জাভাতে জেনেরিকস ছিল না?