Alat pemindaian jaringan Anda sangat pemilih dalam hal input, dan segera macet jika Anda memasukkannya ke alamat IPv4 yang berisi karakter yang tidak pantas atau tidak diformat dengan benar.
Alamat IPv4 adalah alamat numerik 32-bit yang ditulis sebagai empat angka yang dipisahkan oleh titik. Setiap angka bisa nol hingga 255 .
Kita perlu menulis alat untuk memvalidasi input sebelum menghindari crash itu, dan alat khusus kita pilih-pilih: Format yang valid akan terlihat seperti di a.b.c.d
mana a, b, c dan d:
- Dapat berupa
0
angka alami atau tanpa nol di depan . - Harus antara 0 - 255 (inklusif).
- Harus tidak mengandung simbol-simbol khusus seperti
+
,-
,,
, dan lain-lain. - Harus berupa desimal (basis
10
)
Input : String
Output : Nilai Truthy atau Falsey (nilai arbitrer juga diterima)
Kasus uji :
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)
Ini adalah kode-golf , sehingga byte paling sedikit akan menang!
Catatan untuk pengguna - jika Anda ingin menambahkan beberapa lagi kasus uji, Anda disambut (dengan menyarankan edit). Tapi, tolong pastikan bahwa test case tidak terulang! Terima kasih
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
.