IP'den ondalığa çevirici
Bir IP adresini ondalık, onaltılık, ikili ve sekizli sayıya çevirin ya da IP adresini geri almak için bu sayılardan birini yazın. Her oktet basamak değerleriyle 8 bit olarak çizilir; böylece IP çevirme hesabını adım adım izleyebilirsiniz.
Okunan biçim: noktalı ondalık
| 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 | ||
| Toplam | ||
| = 3 325 256 781 | ||
Bir IP adresi ya da IP'yi geri almak için ondalık, hex, ikili veya sekizli sayısı. Dönüştürme tarayıcınızda yapılır; hiçbir şey gönderilmez.
3325256781
Kodda aynı sayı
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- Noktalı ondalık
- Ondalık
- Onaltılık
- İkili oktetler
- Sekizli
- Onaltılık oktetler
- Sekizli oktetler
- Tarayıcıda (her biri 198.51.100.77 adresini açar)
- Ters DNS adı
- IPv6 olarak (eşlemeli)
- IPv4 → IPv6
IP adresi ondalık sayıya nasıl çevrilir?
Dört sayıyı 256³, 256², 256 ve 1 ile çarpıp toplayın: 192.168.1.1 = 192 × 16 777 216 + 168 × 65 536 + 1 × 256 + 1 = 3 232 235 777.
Bir IPv4 adresi, 8 bitlik dört parça hâlinde yazılmış tek bir 32 bitlik sayıdır; bu yüzden noktalı biçim ile ondalık biçim aynı değerdir. MySQL'in belgeleri örnek olarak 10.0.5.9 = 167773449 kullanır.

Her biçim girerNoktalı, ondalık, hex, ikili, sekizli veya bir URL: alan hepsini okur.Bitler ve basamak değerleriHer 1, kendi basamak değerini ekler: 128 + 64 + 4 + 2 = 198.× 256³, 256², 256, 1Her oktet kendi ağırlığıyla çarpılır, ardından toplam.Her biçim çıkarHex, ikili, sekizli ve tarayıcıların kabul ettiği URL'ler; her biri kopyalanabilir.SayıAdresin tamamı tek bir 32 bitlik sayı olarak, kopyalamaya hazır ve adresin türüyle birlikte.Ondalık sayı IP adresine nasıl çevrilir?
16 777 216'ya bölün, ardından kalanı 65 536'ya, sonra 256'ya bölün: üç bölüm ve son kalan dört sayıyı verir; yani 3232235777, 192.168.1.1 eder.
Sayıyı dönüştürücüye yazdığınızda aynısını yapar; hex, ikili, sekizli ve tarayıcıların kabul ettiği biçimleri de gösterir. 4 294 967 295'ten büyük sayılar IPv4 adresi değildir; dönüştürücü onları IPv6 sayısı olarak okur ve bunu belirtir.
3 232 235 777÷ 16 777 216=192kalan 11 010 30511 010 305÷ 65 536=168kalan 257257÷ 256=1kalan 11÷ 1=1kalan 0192.168.1.1
IP adresi ikiliye nasıl çevrilir?
Dört sayının her birini 128, 64, 32, 16, 8, 4, 2 ve 1 basamak değerleriyle 8 bit olarak yazın: 192 = 128 + 64, yani 11000000; 192.168.1.1 ise 11000000.10101000.00000001.00000001 olur.
Basamak değerlerinde soldan ilerleyin: değer sığıyorsa 1 yazıp çıkarın, sığmıyorsa 0 yazın. 168 için: 128 sığar (40 kalır), 64 sığmaz, 32 sığar (8 kalır), 16 sığmaz, 8 sığar; sonuç 10101000. İkiliden geri çevirmek için 1'lerin basamak değerlerini toplayın.
| 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.
IP adresi onaltılığa (hex) nasıl çevrilir?
Her oktetin 8 bitini 4'er bitlik iki yarıya bölün ve her yarıyı tek bir hex rakamıyla yazın: 192, 1100 0000 yani C0 eder; bu yüzden 192.168.1.1, 0xC0A80101 olur.
IPv6 da gömülü bir IPv4 adresini hex ile yazar: ::ffff:c0a8:101, 192.168.1.1 adresidir. Tarayıcılar hex sayıyı host olarak kabul eder: http://0xC0A80101/ adresi 192.168.1.1'i açar.
11000000C010101000A8000000010100000001010xC0A80101
4 bit = 1 onaltılık rakam
http://3232235777 neden 192.168.1.1'i açar?
Çünkü tarayıcılar yalnızca sayılardan oluşan bir hostu eski inet_aton biçimlerinden herhangi birindeki (tek bir ondalık sayı dahil) bir IPv4 adresi olarak okur ve ardından noktalı adresi yükler.
Her parça ondalık (URL Standard), 0x ile hex veya baştaki 0 ile sekizli olabilir; dörtten az parça varsa sonuncusu kalan baytları doldurur. Bu yüzden http://192.168.1/ adresi 192.168.1.1'i değil, 192.168.0.1'i açar. ping ve curl aynı biçimleri kabul eder.
32 biti aşan sayılar, 0 ile başlayan bir parçada 8 veya 9 ve beşinci bir parça reddedilir.
| Adres çubuğuna yazılan | Açılan |
|---|---|
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/ | Reddedildi |
http://09/ | Reddedildi |
http://192.0.2.1.5/ | Reddedildi |
Alternatif IP adresi biçimleri güvenlik için neden önemlidir?
Çünkü adresleri metin olarak karşılaştıran bir filtre kandırılabilir: 2130706433, 0x7f.1, 127.1 ve ::ffff:127.0.0.1 adreslerinin hepsi 127.0.0.1'dir; bu yüzden filtreler dizeyi değil, sayısal değeri karşılaştırmalıdır.
OWASP'ın listesine göre bu kodlamalar SSRF savunmalarını aşmanın yolları arasındadır. Kitaplıklar da bu hatayla yayımlandı: npm paketleri netmask ve ip, Python'un ipaddress modülü ve Go'nun net paketi bir dönem baştaki sıfırları veya alternatif biçimleri yanlış okudu ve sonradan düzeltildi.
Katı bir ayrıştırıcıyla okuyun, sayıya çevirin, ardından aralıkları karşılaştırın. Engellenen aralıkların IPv4 eşlemeli adreslerini de engelleyin.
deny 127.0.0.1
Metin olarak karşılaştırma
127.0.0.1engellendi
2130706433geçiyor
0x7f.1geçiyor
127.1geçiyor
::ffff:127.0.0.1geçiyor
Sayı olarak karşılaştırma
127.0.0.12130706433 · engellendi
21307064332130706433 · engellendi
0x7f.12130706433 · engellendi
127.12130706433 · engellendi
::ffff:127.0.0.12130706433 · engellendi
IPv6 adresi ondalığa nasıl çevrilir?
Aynı şekilde, sekiz adet 16 bitlik grupla: 2001:db8::1, 42540766411282592856903984951653826561 eder; bu, 39 basamağa kadar uzayabilen ve JavaScript'te BigInt gerektiren bir sayıdır.
2^128 IPv6 adresi vardır. JavaScript sayıları tam sayıları yalnızca 2^53 − 1'e kadar kesin tutar, bu yüzden sıradan aritmetik IPv6 değerlerini sessizce yuvarlar. Python'un int(ipaddress.ip_address(…)) ifadesi kesin sonuç verir.
2001:db8::1
42540766411282592856903984951653826561
kesin (BigInt)
42540766411282592856903984951653826560
Number(): 2^53'ten sonra yuvarlanır
Kodda ve veritabanlarında IP adresleri sayıya nasıl çevrilir?
Platformun kendi işlevlerini işaretsiz bir türle kullanın: MySQL'de INT UNSIGNED sütununa INET_ATON(), PostgreSQL'de inet çıkarma işlemi, Python'da int(ipaddress.ip_address(…)) ve JavaScript'te kaydırmalardan sonra >>> 0.
İşaretli 32 bitlik bir tam sayı 128.0.0.0 ve üzerindeki adresleri tutamaz: JavaScript'in << işleci 192.168.1.1 için -1062731519 verir ve PHP'nin ip2long() işlevi 32 bitlik derlemelerde negatife düşer. IPv6 için MySQL INET6_ATON() ve VARBINARY(16) kullanır.
› 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
Sık sorulan sorular
192.168.1.1 ondalık olarak nedir?
Bir IPv4 adresinin en büyük ondalık değeri nedir?
IP çevirici olmadan 3232235777 nasıl IP adresine çevrilir?
Bir IP adresinde 010 gibi baştaki bir sıfır ne anlama gelir?
192.168.1 neden 192.168.0.1'i açar?
Bir IP adresi elle ikiliye nasıl çevrilir?
MySQL'de IP adresleri sayı olarak nasıl saklanır?
JavaScript veya PHP'de IP sayım neden negatif çıkıyor?
Bir IPv6 adresi ondalığa çevrilebilir mi?
http://0x7f000001/ ile 127.0.0.1 aynı mı?
İlgili araçlar
IPv6'dan IPv4'e
IPv6 adresinin içindeki IPv4'ü bulun: eşlemeli, NAT64, 6to4, Teredo ve ISATAP, bit bit
IPv4'ten IPv6'ya
Bir IPv4 adresinin tüm IPv6 biçimleri: eşlemeli, NAT64 ve 6to4; her biri kullanımda veya nadir diye işaretli
IPv6 Sıkıştırma
IPv6 adreslerini RFC 5952'ye göre kısaltın veya genişletin, her sıfırı hangi kuralın attığını görün
IP Adresim Nedir
Genel IPv4 ve IPv6 adresiniz bir arada; ağ, konum ve VPN kontrolüyle
IPv6 Testi
IPv6 çalışıyor mu, tarayıcı hangi aileyi seçiyor, sitede IPv6 var mı: test edin
Alt Ağ Hesaplayıcı
Her IPv4 veya IPv6 bloğu için ağ, yayın adresi, kullanılabilir hostlar ve maskeler; VLSM, bölme ve bulut alt ağları
Ters DNS Sorgulama
PTR kayıtları ile IP adresine bağlı ana bilgisayar adlarını bulun
DNS Sorgulama
Tüm DNS kayıtları alan adının kendi ad sunucularından, Google ve Cloudflare önbelleğiyle yan yana