আইপেটেবলগুলি আইপি অ্যাড্রেসগুলি পরিবর্তন করে যা 047 থেকে শুরু করে 39. এ পরিবর্তন করা হয়!


8

আমি আইপি টেবিলগুলিতে একটি আইপি ঠিকানা নিষিদ্ধ করার চেষ্টা করছি যা 047 দিয়ে শুরু হয়, তবে এটি এটি 039 এ পরিবর্তিত হবে।

iptables -v -w -I INPUT 1 -s 047.75.162.122 -j DROP

তবে আইপি ঠিকানাটি 39.75.162.122 হিসাবে নিষিদ্ধ করা হবে!

কেন আপনি মনে করেন এটি ঘটছে?

উত্তর:


24

এই কি ঘটছে তা হয়:

$ printf "%d\n" 047
39

047অষ্টালে 39দশমিক হয়।

আপনাকে কেবল শীর্ষস্থানীয় ড্রপ করতে হবে 0

অনুমান হিসাবে, এটি ঘটছে কারণ iptables এর কিছু আইপিভি 4 অ্যাড্রেসকে 4 দশমিক সংখ্যায় বিভক্ত করছে যাতে এটি আইপি স্ট্রিং উপস্থাপনাটিকে দীর্ঘায়িত করতে পারে। তবে তা অনুমান।


5
এই আচরণ পরিণামে অন্তর্নিহিত stdlib থেকে আসে strtol()ফাংশন: " একটি অকট্যাল ধ্রুবক উপসর্গ নিয়ে গঠিত 0ঐচ্ছিকরূপে সংখ্যার একটি ক্রম অনুসরণ 0করতে 7শুধুমাত্র "।
ডিজিটাল ট্রমা

1
@ ডিজিটালট্রামা + বা কেবলমাত্র এমন ব্যবহারের inet_addr aka inet_atonজন্যstrtol(,,0)
ডভ_থম্পসন_085

এটি পজিক্স কনফর্মেন্ট: "আইএসও সি স্ট্যান্ডার্ডে উল্লিখিত আইপিভি 4 ডটেড দশমিক নোটেশনের অংশ হিসাবে সরবরাহ করা সমস্ত সংখ্যা দশমিক, অষ্টাল বা হেক্সাডেসিমাল হতে পারে (যা, একটি শীর্ষস্থানীয় 0x বা 0 এক্স হেক্সাডেসিমেল বোঝায়; অন্যথায়, নেতৃস্থানীয় '0' অষ্টাল বোঝায়; অন্যথায়, সংখ্যাটি দশমিক হিসাবে ব্যাখ্যা করা হয়)।
hobbs

5

inet_atonএছাড়াও অন্যান্য কয়েকটি স্বল্প স্বাভাবিক ফর্মগুলি গ্রহণ করে ( ম্যানুয়ালটি আসলে এমনকি তাদের বর্ণনা করে):

octal:
020.0.1.22     ->  16.0.1.22
hexadecimal: 
0x10.0.1.22    ->  16.0.1.22
combination:
020.0.1.0x16   ->  16.0.1.22
bottom two bytes together (old Class B)
16.0.278       ->  16.0.1.22
bottom three bytes together (old Class A)
16.278         ->  16.0.1.22
all in one, hex
0x10000116     ->  16.0.1.22
all in one, decimal (completely unreadable)
268435734      ->  16.0.1.22
this should be simple
0020.0426      ->  ...

তারা সম্ভবত ওয়েব ব্রাউজারগুলিতেও কাজ করবে।

শূন্যের সাথে অষ্টাল সংখ্যার উপসর্গ করা এবং এর সাথে হেক্সাডেসিমাল সংখ্যাগুলি 0xসি ভাষার চেয়ে কমপক্ষে পুরানো।

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