Saya memiliki sistem keamanan dan pengaturan jaringan hanya memungkinkan alamat IP tiga digit. Saya tidak dapat mengaturnya 192.168.2.100
, sebagai gantinya saya harus menggunakan 192.168.002.100
.
Apakah kedua alamat IP ini berbeda? Apakah saya perlu mengatur LAN router saya agar semuanya 192.168.xxx.xxx
berfungsi dengan benar? Saya tidak dapat menemukan informasi yang kuat tentang ini.
networking
ip
Brock Vond
sumber
sumber
192.168.2.100
, tetapi komplain), maka saya sarankan Anda berbicara dengan vendor (Betapa dapat dipercaya sistem keamanan jika validasi inputnya sangat jelek?)0
s terkemuka , tetapi saya telah menjalankan beberapa aplikasi yang tidak mendukung alamat IP yang tidak memiliki 3 digit di setiap oktet.192.168.002.100
bagaimana alat Anda mewakili0xc0a80264
/3232236132
/192.168.2.100
, maka itu adalah hal yang sama.Jawaban:
Itu tergantung pada alatnya.
Untuk sebagian besar tujuan keduanya akan sama, tetapi tidak selalu.
Misalnya, jika Anda menggunakan angka 3 digit dimulai dengan nol (atau dua digit dimulai dengan nol, terima kasih @ Dietrich-Epp), maka ping akan menganggap angka tersebut oktal.
sumber
inet_addr()
Dengan asumsi semua perangkat lunak yang Anda gunakan menggunakan dot-desimal dan subnetting dengan benar, ya mereka sama.
192.168.0.1 misalnya hanya notasi dot-desimal yang ramah dari nilai dot-binary 11000000.10101000.00000000.00000001.
Apakah Anda mengetiknya sebagai 192.168.0.1 atau 192.168.000.001 keduanya sama dengan 11000000.10101000.00000000.00000001
sumber
C0A80001
3232235521
Itu tergantung pada alat atau fungsi yang digunakan oleh program tertentu untuk mengurai alamat yang diberikan. Baik Microsoft dan Linux maupun OS lainnya menggunakan rutin yang kompatibel dengan POSIX
inet_addr()
untuk mem-parsing alamat.Dengan demikian, sistem spesifik Anda mungkin memerlukan notasi desimal tiga digit untuk setiap oktet, tetapi ini tidak universal, dan harus diperhatikan untuk memastikan alamat IP yang tepat dimasukkan.
Tentu saja, hanya angka yang valid untuk setiap jenis yang akan berfungsi. Di luar jangkauan Oktal, Hex atau angka Desimal juga akan gagal atau menyebabkan masalah. Oktal 088, Hex 0xGG, atau Decimal 280 adalah contoh yang tidak valid.
sumber
Seperti Lightness Races di Orbit dan lainnya telah menunjukkan,
The
INET(3)
man page menjelaskaninet_addr
daninet_aton
, fungsi standar yang digunakan untuk mengubah "notasi IPv4 nomor-dan-titik dalam bentuk biner". Ia mengatakanJadi secara teknis, TIDAK , alamat IP dengan nol di depan tidak (selalu) sama dengan yang tanpa nol di depan. Namun dalam kasus Anda,
192.168.2.100
dan192.168.002.100
identik, karena002 == 2
.Setiap antarmuka pengguna yang membutuhkan masing-masing komponen panjangnya tepat tiga karakter, dengan nol di depan yang diperlukan salah rusak.
sumber
Beberapa implementasi menganggap oktet dengan angka nol di depan menjadi desimal sedangkan implementasi lainnya menganggap oktaf. Selama oktet berada dalam kisaran dari 0 hingga 7, ini tidak membuat perbedaan. Jadi misalnya akan
192.168.002.100
diartikan sebagai192.168.2.100
dalam kedua implementasi.Tetapi jika Anda mengetikkan alamat karena
192.168.010.100
dapat ditafsirkan sebagai192.168.10.100
atau192.168.8.100
tergantung pada implementasinya. Ini juga tidak mungkin bahwa implementasi memang ada, yang akan menganggap nol mengarah ke kesalahan sintaksis. Selain itu, ada skenario di mana perangkat lunak dapat bersikeras bahwa Anda harus menggunakan representasi kanonik untuk satu alasan atau yang lain. Untuk semua alasan itu, saya sarankan untuk menghindari nol di awal saat Anda menulis alamat IP.Jika Anda menulis perangkat lunak yang perlu menguraikan alamat IP, saya akan merekomendasikan menerima nol di awal, tetapi mengeluarkan peringatan ke lokasi yang sesuai ketika itu terjadi.
Sedikit terkait ada implementasi yang memungkinkan Anda untuk memiliki kurang dari empat komponen dalam notasi bertitik. Ketika ada kurang dari empat komponen, komponen terakhir memiliki lebih dari 8 bit dan komponen sebelumnya memiliki tepat 8 bit. Sebagai contoh
192.168.612
sebenarnya akan menjadi cara yang valid untuk menulis192.168.2.100
. Tetapi sekali lagi menggunakan notasi itu tidak dianjurkan.sumber
Hanya sedikit tip: Dalam beberapa kasus, penting untuk menggunakan nol awalan di alamat IP. Contohnya, adalah Apache .htaccess menyangkal aturan.
Jika Anda menggunakan sesuatu seperti
Apache sangat bodoh yang juga akan memblokir akses dari IP berikut:
111.22.33.22
11.22.33.221
211.22.33.221
dan secara umum, alamat IP apa pun yang mencakup 11.22.33.22
Jadi, hanya untuk memastikan bahwa Anda tidak akan memblokir IP yang tidak Anda maksud untuk diblokir, Anda harus menggunakan:
untuk memastikan bahwa Apache akan memblokir akses hanya dari alamat IP 11.22.33.22.
sumber
hati-hati dengan ini. itu HARUS sama tetapi tidak !
saya tidak dapat menemukan penjelasan untuk ini tetapi saya pasti bisa mengatakan bahwa pada windows dan linux alamat ip dengan dan tanpa nol terkemuka TIDAK sama! mungkin ini ada hubungannya dengan konversi dari format lain seperti hex atau binary.
dari pengalaman saya dengan windows dan linux itu bukan alat dependend tetapi os dependend sepertinya karena saya menjalankan beberapa masalah menggunakan ips seperti 10.08.03.100:
linux / debian7 / 8: hasil yang sama dengan alat "ping" dan "snmpget"
windows7 / 8/10: hasil yang sama dengan alat "ping" dan "telnet"
(maaf, saya tidak punya jendela bahasa Inggris, kesalahan mengatakan bahwa host tidak dapat ditemukan)
sumber
Dua alamat IP berbeda.
Namun:
Jika itu terdengar membingungkan, itu karena tidak ada standar yang mengatur cara alamat IP seharusnya ditulis, sehingga programmer yang berbeda pada titik yang berbeda dalam sejarah, dan pada platform yang berbeda, semua memiliki ide berbeda tentang apa yang harus dilakukan.
Alamat IP sebenarnya adalah biner, dan orang-orang cenderung menggunakan notasi desimal bertitik untuk mewakili alamat IP. Perangkat lunak dapat menerima berbagai basis numerik (yaitu desimal, oktal, hex) dan menafsirkan berbagai hal berdasarkan cara Anda menulisnya. Bagaimana Anda menulisnya dapat memberi tahu peranti lunak tempat Anda menulis.
Saya menyarankan Anda: jangan gunakan angka nol di depan jika Anda bermaksud menggunakan notasi desimal bertitik. Beberapa perangkat lunak akan menganggap bahwa sebuah bendera berarti Anda memasukkan angka oktal. Jika Anda bermaksud memasukkan angka desimal, Anda tidak akan mendapatkan hasil yang Anda harapkan.
Saya mengajukan pertanyaan serupa dan mendapat beberapa tanggapan yang baik, jadi jika Anda ingin membaca di RFC, ada info bagus yang bisa didapat di sana.
sumber
Itu harus bekerja dengan cara baik. Anda bahkan dapat melakukan ping dengan angka tiga digit dan komputer akan memahami alamat IP.
Sunting : windows akan membacanya sebagai oktal, ini hanya berfungsi untuk Linux.
sumber
Angka nol di depan tidak ada artinya. Oktet adalah (basis-10) angka 0-255, bukan string.
Karena saya tidak yakin apa yang Anda tanyakan (atau Anda tahu pertanyaan apa yang harus diajukan :)): Karena itu, IP # harus berada di subnet yang sama dengan jaringan Anda. Jika Anda memilih 11.12.13.14 dalam subnetmask 192.168.0.0, perangkat itu tidak akan dapat berbicara atau menggunakan subnet itu.
sumber
inet_addr
dan ratusan ribu alat yang bergantung padanya untuk penguraian alamat mengambil awalan 0 yang berarti byte diberikan dalam notasi base-8. Itu hampir "tidak berarti".