উপরের খাঁটি শেল (আপনি যদি প্রিন্টফ গণনা না করেন) উত্তরের জন্য উপরে অবশ্যই আমাকে @ রুবো .77 তে কুদোস দিতে হবে, যা আমি খুঁজছিলাম।
এটি এতে কিছুটা সিড যুক্ত করেছে:
(ক) প্রতিটি 16-বিট অংশে যে কোনও নেতৃস্থানীয় জিরো এলাইড; এবং
(খ) আইআইডি শুরুর পরে আর কোনও শূন্য অংশকে এলিটেড করুন
... ঠিকানা ব্রেভিটির জন্য সাধারণ সম্মেলন হিসাবে।
mac_to_eui64() {
IFS=':'; set $1; unset IFS
echo "fe80::$(printf %x $((0x$1 ^ 2)))$2:${3}ff:fe$4:$5$6" |
sed -E 's/:0+/:/g; s/:{3,}/::/; s/:$/:0/'
}
নোট করুন আপনি যদি অন্য (স্বেচ্ছাসেবী) উপসর্গগুলির জন্য এটি পুনরায় প্রকাশ করতে চান তবে আপনি EUI-64 যে কোনও সুযোগে ব্যবহার করতে পারেন (যদিও এটি গোপনীয়তার কারণে বিশ্বব্যাপী ঠিকানাগুলির জন্য এটি ব্যবহার না করার পরামর্শ দেওয়া হয়েছে) তবে আপনার কিছুটা দরকার আরও সংশ্লেষিত সেড স্ক্রিপ্ট। এর কারণ এই fe80::
উপসর্গটিতে ইতিমধ্যে আইআইডি শুরুর সংলগ্ন তিনটি শূন্য-খণ্ড (ডাবল-কোলনের সাথে সংযুক্ত) রয়েছে। সুতরাং আইআইডি-র প্রথম অংশটি অল-জিরো হলেও (এটি যদি ম্যাক শুরু করে 02:00
) তবে তাও যথাযথভাবে বিবেচিত হবে। EUI-64 ফর্ম্যাটটি কেবল আরও একটি অংশ ফেলেছে যা সর্বদিক থেকে শূন্য হতে পারে - শেষটি - যা উপরের স্ক্রিপ্টটি একক শূন্য হিসাবে আবার যুক্ত করে। অন্যান্য উপসর্গগুলির জন্য দুটি কোলনের মধ্যে একটি একক শূন্যের প্রয়োজন হতে পারে।