Herkes onu RFC'ler, IP sınıfları ve benzeri ile aşırı karmaşıklaştırıyor. pingKomutun IP girişini kullanıcı tarafından nasıl ayrıştırdığını görmek için birkaç test yapın.
> ping 1
Pinging 0.0.0.1 with 32 bytes of data:
> ping 1.2
Pinging 1.0.0.2 with 32 bytes of data:
> ping 1.2.3
Pinging 1.2.0.3 with 32 bytes of data:
> ping 1.2.3.4
Pinging 1.2.3.4 with 32 bytes of data:
> ping 1.2.3.4.5
Ping request could not find host 1.2.3.4.5. Please check the name and try again.
> ping 255
Pinging 0.0.0.255 with 32 bytes of data:
> ping 256
Pinging 0.0.1.0 with 32 bytes of data:
Gördüğünüz gibi, pingkomut (Windows'ta) farklı IP adres biçimlerini kullanmanızı sağlar. Bir IPv4 adresi şu şekilde dört bölüme (“noktalı”) ayrılabilir : A.B.C.Dve pingkomut, varsayılanı 0aşağıdaki gibi doldurarak bazılarını bırakmanıza izin verir :
1 part (ping A) : 0.0.0.A
2 parts (ping A.B) : A.0.0.B
3 parts (ping A.B.C) : A.B.0.C
4 parts (ping A.B.C.D) : A.B.C.D
Yalnızca tek bir parça tedarik ediyorsanız, 255'in altındaysa (bir oktet için maksimum), yukarıdaki gibi bir oktet gibi işlem görür, ancak 255'ten büyükse, o zaman dönüştürülür ve bir sonraki alana devirilir (yani, mod 256).
Dörtten fazla parçanın çalışması gibi gözükmeyen birkaç vaka var (örneğin, ping'in google.comIP'si ya 0.74.125.226.4da için çalışmıyor 74.125.226.4.0).
Onaltılık gösterimi hem noktalı dörtlü hem de düz formda da kullanabilirsiniz, ancak 0xher bir oktete önceden bekleterek biçimlendirmeniz gerekir .
Bu nedenle, bir (IPv4) IP adresini temsil etmenin birçok yolu vardır. Düz veya noktalı-dört (veya noktalı-üçlü, noktalı-çift veya hatta noktalı-tek) formatı kullanabilir ve her biri için ondalık, sekizli ve onaltılık kullanabilirsiniz. Örneğin google.com, aşağıdaki şekillerde ping yapabilirsiniz :
google.com (alan adı)
74.125.226.4 (noktalı ondalık)
1249763844 (düz ondalık)
0112.0175.0342.0004 (noktalı sekizlik)
011237361004 (yassı sekizli)
0x4A.0x7D.0xE2.0x04 (noktalı altıgen)
0x4A7DE204 (düz altıgen)
74.0175.0xe2.4 (ಠ_ಠ)
(İkili gösterim desteği eklenmemiş olması çok şükür!)
Uygulama :
Sizin durumunuzda, ping 192.168.072yukarıdaki tabloda ( A.B.0.C) üçüncü biçimi kullanıyor , bu yüzden aslında ping yapıyorsunuz 192.168.0.072. Ayrıca, son kısımda baştaki sıfır değerine sahip olduğunuz için, ondalık sayı 58 olan sekizlik olarak kabul edilir.
Gizem çözüldü.
Windows pingkomutunun girdi için çok çeşitli biçimlere izin vermesine ve standart olmayan biçimleri görüldüğü gibi yorumlamasına rağmen, bu biçimleri her yerde kullanabileceğiniz anlamına gelmez. Bazı programlar sizi noktalı dörtlü parçanın dört parçasını da sağlamaya zorlayabilir, diğerleri ondalık ve sekizli vb. Karıştırmaya ve eşleştirmeye izin vermeyebilir.
Ayrıca, IPv6 adresleri ayrıştırma mantığını ve giriş formatı kabul edilebilirliğini daha da karmaşıklaştırır.
Zeyilname :
syss , sayılardan birinde geçersiz bir karakter kullanırsanız (örneğin, an 8veya 9sekizli gmodda, veya altıgen modunda vb.) kullanırsanız ping, bunu tanıyacak ve onu bir dize olarak (-al?) yorumlayacak kadar akıllı olduğunu belirtti. -ic?) Sayısal IP adresi yerine URL.
(Veri değerlerinin üssel olarak patlayan sayıda permütasyona uyum sağlamak için sözde “basit” kod yazmaya çalışan çok sayıda anevrizması ve kalp krizi geçiren biri olarak, tüm girdi değişkenlerinin doğru bir şekilde işlendiğini kabul ediyorum; durumda, en az 3 1 +3 2 +3 3 +3 4 = 120 varyasyon.)
Belirterek süre Yani, 010.020.030.040ping 8.16.24.32beklendiği gibi yoldan geçen 010.020.030.080etmek pingbir URL yerine IP adresi benzeri gibi muamele edilecektir foo.bar.baz.comolabilir (ama ne yazık ki değil) mevcut. Başka bir deyişle, 010alt 020etki alanına, etki alanı üzerindeki alt etki 030alanında en üst düzey etki alanında ping işlemi yapmaya çalışır 080. Ancak, 080geçerli bir TLD değil (gibi .com, .netve bunların arkadaşları), bağlantısı şu ilk adımda başarısız olur.
Aynı şey 090.010.010.010, geçersiz karakterin farklı bir sayı grubunun olduğu yerde olur . Aynı şekilde, 0xf.0xf.0xf.0xfping 15.15.15.15, ancak 0xh1.0x1.0xg0.0fbaşarısız olur.
Pekala, sanırım birden fazla bazda akıcı olmamanın sebebi bu.
Her zaman 4 noktalı dörtlü (“40q”? “Dörtlü dört”? “Cutie-q”?) Adreslerini kullandığınızdan emin olmak muhtemelen daha kolay ve daha güvenlidir.
Öyleyse dışarı çık ve bazı sayı tabanlarını öğren . Partilerin yaşamını gösterip, onun hayatını gösterebileceksiniz ve dedikleri gibi, 10 tip insan var: ikili olan ve olmayanlar.
IPv6 adreslerini bile düşünmeyelim ; Bence 111 mühürden biri !!!