Ağ tarama aracınız giriş konusunda can sıkıcı bir şekilde seçicidir ve uygunsuz karakterler içeren veya doğru biçimlendirilmemiş bir IPv4 adresini beslerseniz hemen kilitlenir.
IPv4 adresi, noktalarla ayrılmış dört sayı olarak yazılmış 32 bitlik sayısal bir adrestir . Her numara sıfır ila 255 olabilir .
Bu çökmelerden kaçınmak için girişi önceden doğrulamak için bir araç yazmamız gerekiyor ve özel aracımız seçici: Geçerli bir format, a.b.c.d
a, b, c ve d gibi gözükecek :
- Bir olabilir
0
veya doğal sayı hiçbir başındaki sıfırlar . - 0 - 255 (dahil) arasında olmalıdır.
- Meli değil gibi özel simgeleri içeren
+
,-
,,
ve diğerleri. - Ondalık (temel
10
) olmalı
Giriş : Bir dize
Çıktı : Truthy veya Falsey değeri (isteğe bağlı değerler de kabul edilir)
Test Durumları :
Input | Output | Reason
| |
- 1.160.10.240 | true |
- 192.001.32.47 | false | (leading zeros present)
- 1.2.3. | false | (only three digits)
- 1.2.3 | false | (only three digits)
- 0.00.10.255 | false | (leading zeros present)
- 1.2.$.4 | false | (only three digits and a special symbol present)
- 255.160.0.34 | true |
- .1.1.1 | false | (only three digits)
- 1..1.1.1 | false | (more than three periods)
- 1.1.1.-0 | false | (special symbol present)
- .1.1.+1 | false | (special symbol present)
- 1 1 1 1 | false | (no periods)
- 1 | false | (only one digit)
- 10.300.4.0 | false | (value over 255)
- 10.4F.10.99 | false | (invalid characters)
- fruit loops | false | (umm...)
- 1.2.3.4.5 | false | (too many periods/numbers)
- 0.0.0.0 | true |
- 0.0 0.0. | false | (periods misplaced)
- 1.23..4 | false | (a typo of 1.2.3.4)
- 1:1:1:1:1:1:1:1| false | (an IPv6 address, not IPv4)
Bu kod golf , yani en az bayt kazanacak!
Kullanıcılar için not - biraz daha test senaryosu eklemek istiyorsanız, memnuniyetle karşılanırsınız (düzenleme önererek). Ancak, lütfen test durumlarının kendilerini tekrar etmediğinden emin olun! Teşekkürler
1.1.1.1.1
,1.1.1.1.
,.1.1.1
,1..1.1
,1..1.1.1
,1.1.1.0
,1.1.1.-0
,1.1.1.+1
,1.1.1.1E1
,1.1.1.256
,1.1.1.0x1
,255.255.255.255
,0.0.0.0
,'or 1=1--
,<empty string>
,1 1 1 1
,1,1,1,1
.