Konverter IP ke desimal
Konversi alamat IP ke desimal, heksadesimal, biner, dan oktal, atau ketik salah satu angka itu untuk mendapatkan IP-nya kembali. Setiap oktet digambar sebagai 8 bit dengan nilai tempatnya, jadi Anda bisa mengikuti hitungannya.
Dibaca sebagai desimal bertitik
| Oktet | 1286432168421 | Hex |
|---|---|---|
| 198 | 11000110 | C6 |
| 128+64+4+2 × 256³ = 3 321 888 768 | ||
| 51 | 00110011 | 33 |
| 32+16+2+1 × 256² = 3 342 336 | ||
| 100 | 01100100 | 64 |
| 64+32+4 × 256 = 25 600 | ||
| 77 | 01001101 | 4D |
| 64+8+4+1 × 1 = 77 | ||
| Total | ||
| = 3 325 256 781 | ||
Sebuah IP, atau angka desimal, hex, biner, atau oktalnya untuk mendapatkan IP-nya kembali. Dikonversi di browser Anda; tidak ada yang dikirim.
3325256781
Angka yang sama dalam kode
SELECT INET_ATON('198.51.100.77');3325256781SELECT '198.51.100.77'::inet - '0.0.0.0'::inet;3325256781int(ipaddress.ip_address('198.51.100.77'))3325256781ip2long('198.51.100.77')3325256781- Desimal bertitik
- Desimal
- Hex
- Oktet biner
- Oktal
- Oktet hex
- Oktet oktal
- Di browser (masing-masing membuka 198.51.100.77)
- Nama reverse DNS
- Sebagai IPv6 (mapped)
- IPv4 → IPv6
Bagaimana cara mengubah alamat IP ke desimal?
Kalikan keempat angka dalam format dotted decimal (4 oktet) dengan 256³, 256², 256, dan 1, lalu jumlahkan: 192.168.1.1 adalah 192 × 16 777 216 + 168 × 65 536 + 1 × 256 + 1 = 3 232 235 777.
Alamat IPv4 adalah satu angka 32 bit yang ditulis dalam empat potongan 8 bit, jadi bentuk bertitik dan bentuk desimal adalah nilai yang sama. Dokumentasi MySQL memakai 10.0.5.9 = 167773449 sebagai contoh.

Masukkan bentuk apa punBertitik, desimal, hex, biner, oktal, atau URL: kolom ini membaca semuanya.Bit dan nilai tempatSetiap 1 menambahkan nilai tempatnya: 128 + 64 + 4 + 2 = 198.× 256³, 256², 256, 1Setiap oktet dikalikan bobotnya, lalu dijumlahkan.Semua bentuk keluaranHex, biner, oktal, dan URL yang diterima browser, masing-masing dengan tombol salin.AngkanyaSeluruh alamat sebagai satu angka 32 bit, siap disalin, beserta jenis alamatnya.Bagaimana cara mengubah desimal ke alamat IP?
Bagi dengan 16 777 216, lalu bagi sisanya dengan 65 536, lalu dengan 256: ketiga hasil bagi dan sisa terakhir adalah keempat angkanya, jadi 3232235777 adalah 192.168.1.1.
Ketik angkanya di konverter dan alat ini melakukan hal yang sama, beserta hex, biner, oktal, dan bentuk yang diterima browser. Angka di atas 4 294 967 295 bukan alamat IPv4; konverter membacanya sebagai angka IPv6 dan memberi tahu Anda.
3 232 235 777÷ 16 777 216=192sisa 11 010 30511 010 305÷ 65 536=168sisa 257257÷ 256=1sisa 11÷ 1=1sisa 0192.168.1.1
Bagaimana cara mengubah alamat IP ke biner?
Tulis setiap angka dari keempat angka itu sebagai 8 bit dengan nilai tempat 128, 64, 32, 16, 8, 4, 2, dan 1: 192 adalah 128 + 64, jadi 11000000, dan 192.168.1.1 adalah 11000000.10101000.00000001.00000001.
Telusuri nilai tempat dari kiri: tulis 1 dan kurangkan jika nilainya muat, jika tidak tulis 0. Untuk 168: 128 muat (sisa 40), 64 tidak, 32 muat (sisa 8), 16 tidak, 8 muat, jadi 10101000. Untuk kembali dari biner, jumlahkan nilai tempat dari setiap angka 1.
| 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | ||
|---|---|---|---|---|---|---|---|---|---|
| 192 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 128 + 64 |
| 168 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 128 + 32 + 8 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
11000000.
Bagaimana cara mengubah alamat IP ke heksadesimal?
Bagi 8 bit setiap oktet menjadi dua bagian berisi 4 bit dan tulis setiap bagian sebagai satu digit hex: 192 adalah 1100 0000, yaitu C0, jadi 192.168.1.1 adalah 0xC0A80101.
Hex juga cara IPv6 menulis alamat IPv4 yang tersemat: ::ffff:c0a8:101 adalah 192.168.1.1. Browser menerima angka hex sebagai host: http://0xC0A80101/ membuka 192.168.1.1.
11000000C010101000A8000000010100000001010xC0A80101
4 bit = 1 digit hex
Mengapa http://3232235777 membuka 192.168.1.1?
Karena browser membaca host yang hanya berisi angka sebagai alamat IPv4 dalam bentuk inet_aton lama mana pun, termasuk satu angka desimal, lalu memuat alamat bertitiknya.
Setiap bagian boleh desimal (URL Standard), hex dengan 0x, atau oktal dengan 0 di depan, dan jika kurang dari empat bagian, bagian terakhir mengisi byte yang tersisa. Jadi http://192.168.1/ membuka 192.168.0.1, bukan 192.168.1.1. ping dan curl menerima bentuk yang sama.
Angka di atas 32 bit, angka 8 atau 9 di bagian yang diawali 0, dan bagian kelima akan ditolak.
| Diketik di address bar | Membuka |
|---|---|
http://3232235777/ | 192.168.1.1 |
http://0xC0A80101/ | 192.168.1.1 |
http://0300.0250.1.1/ | 192.168.1.1 |
http://127.1/ | 127.0.0.1 |
http://192.168.1/ | 192.168.0.1 |
http://4294967296/ | Ditolak |
http://09/ | Ditolak |
http://192.0.2.1.5/ | Ditolak |
Mengapa bentuk alternatif alamat IP penting untuk keamanan?
Karena filter yang membandingkan alamat sebagai teks bisa dikelabui: 2130706433, 0x7f.1, 127.1, dan ::ffff:127.0.0.1 semuanya adalah 127.0.0.1, jadi filter harus membandingkan nilai angkanya, bukan string-nya.
OWASP mencantumkan encoding ini di antara cara melewati pertahanan SSRF. Sejumlah library pernah punya bug ini: paket npm netmask dan ip, ipaddress di Python, dan paket net di Go pernah salah membaca nol di depan atau bentuk alternatif, dan sudah diperbaiki.
Parse dengan pembaca yang ketat, ubah ke angka, lalu bandingkan rentangnya. Blokir juga alamat IPv4-mapped dari rentang yang diblokir.
deny 127.0.0.1
Dibandingkan sebagai teks
127.0.0.1diblokir
2130706433lolos
0x7f.1lolos
127.1lolos
::ffff:127.0.0.1lolos
Dibandingkan sebagai angka
127.0.0.12130706433 · diblokir
21307064332130706433 · diblokir
0x7f.12130706433 · diblokir
127.12130706433 · diblokir
::ffff:127.0.0.12130706433 · diblokir
Bagaimana cara mengubah alamat IPv6 ke desimal?
Dengan cara yang sama, memakai delapan grup 16 bit: 2001:db8::1 adalah 42540766411282592856903984951653826561, angka hingga 39 digit yang memerlukan BigInt di JavaScript.
Ada 2^128 alamat IPv6. Angka JavaScript hanya menyimpan bilangan bulat dengan tepat sampai 2^53 − 1, jadi aritmetika biasa diam-diam membulatkan nilai IPv6. int(ipaddress.ip_address(…)) di Python memberikan hasil yang tepat.
2001:db8::1
42540766411282592856903984951653826561
tepat (BigInt)
42540766411282592856903984951653826560
Number(): dibulatkan setelah 2^53
Bagaimana cara mengubah alamat IP ke angka di kode dan database?
Pakai fungsi bawaan platform dengan tipe unsigned: INET_ATON() di MySQL ke kolom INT UNSIGNED, pengurangan inet di PostgreSQL, int(ipaddress.ip_address(…)) di Python, dan >>> 0 setelah operasi shift di JavaScript.
Integer 32 bit bertanda (signed) tidak bisa menampung alamat mulai 128.0.0.0: << di JavaScript menghasilkan -1062731519 untuk 192.168.1.1, dan ip2long() di PHP menjadi negatif di build 32 bit. Untuk IPv6, MySQL memakai INET6_ATON() dan VARBINARY(16).
› SELECT INET_ATON('192.168.1.1'), INET_NTOA(3232235777); 3232235777 | 192.168.1.1
MySQL 8.4
› SELECT '192.168.1.1'::inet - '0.0.0.0'::inet, '0.0.0.0'::inet + 3232235777; 3232235777 | 192.168.1.1
PostgreSQL 16
› import ipaddress int(ipaddress.ip_address('192.168.1.1')), ipaddress.IPv4Address(3232235777) (3232235777, IPv4Address('192.168.1.1'))
Python ipaddress
› '192.168.1.1'.split('.').reduce((n, o) => (n << 8) | +o, 0) >>> 0 3232235777
JavaScript
› echo ip2long('192.168.1.1'), ' ', long2ip(3232235777); 3232235777 192.168.1.1
PHP 8
Pertanyaan yang sering diajukan
Berapa 192.168.1.1 dalam desimal?
Berapa rentang nilai desimal setiap oktet IPv4, dan berapa nilai terbesar alamat IPv4?
Bagaimana cara mengubah 3232235777 kembali menjadi alamat IP?
Apa arti nol di depan, seperti 010, pada alamat IP?
Mengapa 192.168.1 membuka 192.168.0.1?
Bagaimana cara mengubah alamat IP ke biner secara manual?
Bagaimana cara menyimpan alamat IP sebagai angka di MySQL?
Mengapa angka IP saya negatif di JavaScript atau PHP?
Bisakah alamat IPv6 diubah ke desimal?
Apakah http://0x7f000001/ sama dengan 127.0.0.1?
Alat terkait
IPv6 ke IPv4
Temukan alamat IPv4 di dalam alamat IPv6: mapped, NAT64, 6to4, Teredo, dan ISATAP, bit demi bit
IPv4 ke IPv6
Semua bentuk IPv6 dari alamat IPv4: mapped, NAT64, dan 6to4, masing-masing ditandai dipakai atau jarang
Kompresi IPv6
Persingkat atau ekspansi alamat IPv6 sesuai RFC 5952 dan lihat aturan yang membuang setiap nol
IP Saya Apa
IPv4 dan IPv6 publik Anda sekaligus, dengan jaringan, lokasi, dan cek VPN
Tes IPv6
Uji apakah IPv6 berfungsi, jenis alamat pilihan browser, dan IPv6 sebuah situs
Kalkulator Subnet
Jaringan, broadcast, host yang dapat dipakai, dan mask untuk blok IPv4 atau IPv6, plus VLSM, pembagian, dan subnet cloud
Pencarian DNS Terbalik
Temukan hostname terkait alamat IP melalui rekaman PTR
Cek DNS
Semua DNS record langsung dari nameserver domain, berdampingan dengan cache Google dan Cloudflare