เครื่องมือสแกนเครือข่ายของคุณมักจะพิถีพิถันเกี่ยวกับอินพุตและหยุดทำงานทันทีหากคุณป้อนที่อยู่ IPv4 ที่มีอักขระที่ไม่เหมาะสมหรือมีรูปแบบไม่ถูกต้อง
ที่อยู่ IPv4 เป็นที่อยู่ตัวเลข32 บิตที่เขียนเป็นตัวเลขสี่ตัวคั่นด้วยเครื่องหมายมหัพภาค ตัวเลขแต่ละตัวสามารถเป็นศูนย์ถึง 255
เราจำเป็นต้องเขียนเครื่องมือเพื่อตรวจสอบความถูกต้องของอินพุตล่วงหน้าเพื่อหลีกเลี่ยงความผิดพลาดเหล่านั้นและเครื่องมือเฉพาะของเราคือพิถีพิถัน: รูปแบบที่ถูกต้องจะมีลักษณะa.b.c.dที่ a, b, c และ d:
- สามารถเป็น
0จำนวนธรรมชาติหรือไม่มีเลขศูนย์นำหน้าไม่มีศูนย์นำ - ควรอยู่ระหว่าง 0 - 255 (รวม)
- ควรไม่ประกอบด้วยสัญลักษณ์พิเศษชอบ
+,-,,และอื่น ๆ - ควรเป็นทศนิยม (ฐาน
10)
อินพุต : สตริง
เอาต์พุต : ค่า Truthy หรือ Falsey (ยอมรับค่าตามอำเภอใจด้วย)
กรณีทดสอบ :
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)
นี่คือโค้ดกอล์ฟดังนั้นไบต์ที่น้อยที่สุดจึงจะชนะ!
หมายเหตุสำหรับผู้ใช้ - หากคุณต้องการเพิ่มกรณีทดสอบเพิ่มเติมคุณยินดี (โดยแนะนำให้แก้ไข) แต่โปรดตรวจสอบให้แน่ใจว่ากรณีทดสอบไม่ซ้ำรอย! ขอบคุณ
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 11,1,1,1