আমি কেন আংশিক আইপি ঠিকানার মাধ্যমে কোনও সার্ভার অ্যাক্সেস করতে পারি?


10

আমার নেটওয়ার্কে আমার কাছে একটি সার্ভার রয়েছে যা আইপি ঠিকানা 10.0.0.15 দ্বারা পরিচিত। দুর্ঘটনাক্রমে, আমি আবিষ্কার করেছি যে আদেশ: ping 10.0.15ফলাফল

64 bytes from 10.0.0.15: icmp_seq=1 ttl=64 time=9.09 ms

... সুতরাং সঠিক সার্ভার পিংয়ের প্রতিক্রিয়া জানায়। এমনকি যখন আমি চেষ্টা করি: ping 10.15আমি একটি তুলনামূলক ফলাফল পাই। এছাড়াও, আংশিক ঠিকানার টেলনেট প্রত্যাশার মতো কাজ করে। তবে এসএসএইচ ব্যর্থ। আংশিক ঠিকানায় প্রেরিত প্যাকেটগুলি কেন সঠিক সার্ভারে উপস্থিত হয়?


এটি কোনও আংশিক ঠিকানা নয় ... সুতরাং শিরোনামটি এখানে কিছুটা বিভ্রান্তিকর ...
ররি আলসপ

1
ssh এ জাতীয় কোনও ঠিকানার সাথে সংযোগ করতে সক্ষম হওয়া উচিত (কারণ এটি একই সাথে মান সকেট কলগুলিতে ম্যাপ করে) তবে এটি হোস্ট কীটিকে 'সঠিক' ঠিকানার জন্য পরিচিত_হোস্টের প্রবেশের সাথে মিলে হিসাবে চিহ্নিত করবে না, ফলাফলের উপর নির্ভর করে কীভাবে আপনি (বা আপনার প্রশাসক) হোস্ট কী পরীক্ষার কনফিগার করেছেন।
dave_thompson_085

আইপি ঠিকানার টেক্সট উপস্থাপনাগুলি সম্পর্কে অতিরিক্ত মজাদার জন্য সার্ভারফল্টে আমার পুরানো সম্পর্কিত সম্পর্কিত উত্তরটি দেখুন: serverfault.com/a/837667/355827
ilkkachu

উত্তর:


18

এটি inet_aton(3)ফাংশন ডক্স অনুসারে অনুমোদিত ফর্ম :

DESCRIPTION
       inet_aton() converts the Internet host address cp from  the  IPv4  num‐
       bers-and-dots  notation  into  binary  form (in network byte order) and
       stores it in the structure that inp  points  to.   inet_aton()  returns
       nonzero  if the address is valid, zero if not.  The address supplied in
       cp can have one of the following forms:

       a.b.c.d   Each of the four  numeric  parts  specifies  a  byte  of  the
                 address;  the  bytes  are  assigned in left-to-right order to
                 produce the binary address.

       a.b.c     Parts a and b specify the  first  two  bytes  of  the  binary
                 address.   Part  c  is  interpreted  as  a  16-bit value that
                 defines the rightmost two bytes of the binary address.   This
                 notation  is  suitable for specifying (outmoded) Class B net‐
                 work addresses.

       a.b       Part a specifies the first byte of the binary address.   Part
                 b is interpreted as a 24-bit value that defines the rightmost
                 three bytes of the binary address.  This notation is suitable
                 for specifying (outmoded) Class C network addresses.

       a         The  value  a is interpreted as a 32-bit value that is stored
                 directly into the binary address without any byte  rearrange‐
                 ment.

যেমন

$ perl -MSocket=inet_aton,inet_ntoa -E 'say inet_ntoa(inet_aton("10.0.15"))'
10.0.0.15
$ perl -MSocket=inet_aton,inet_ntoa -E 'say inet_ntoa(inet_aton("10.15"))'
10.0.0.15
$ 

তবে এই দিনগুলি পরিবর্তে আইপিভি 6 সমর্থন করার জন্য getaddrinfoবা inet_ntopকলগুলি ব্যবহার করা ভাল । "ক্লাস বি" স্টাফ 1994 বা তারপরে এখন আমাদের সিআইডিআর এবং /24...

আরে আপনি এটিকে একটি বড় পুরানো পূর্ণসংখ্যাও দিতে পারেন (তবে দয়া করে এটি করবেন না)

$ perl -MSocket=inet_aton,inet_ntoa -E 'say inet_ntoa(inet_aton("2130706433"))'
127.0.0.1
$ getent hosts 2130706433
127.0.0.1       2130706433
$ ssh 2130706433
The authenticity of host '2130706433 (127.0.0.1)' can't be established.
...

(এটি অন্যান্য ইউনিক্সের কাছে পোর্টেবল নাও হতে পারে; বিশেষত ওপেনবিএসডি 2130706433 সমাধান করতে পারে না ...)


1
এমনকি আরো মজার জন্য, যেমন ডক পরবর্তী পাড়া বলতে হবে (এবং POSIX করে), প্রতিটি সংখ্যা সি উৎস মত পার্স যেখানে নেতৃস্থানীয় 0উপায়ে অকট্যালে এবং 0xবা 0Xমাধ্যম হেক্স, তাই 010.020.030.040 সেই ঠিকানাটি সাধারণত 8.16.24.32 হিসেবে লেখা হয় । ফিশাররা দূষিত ইউআরএলগুলিতে হোস্ট পরিচয়টি 'আড়াল' করতে এটি করত; তারা এখনও করছে কিনা তা দেখার জন্য আমি সম্প্রতি তাকাইনি।
dave_thompson_085
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.