आपका नेटवर्क स्कैनिंग टूल इनपुट के बारे में कष्टप्रद है, और यदि आप इसे IPv4 एड्रेस फीड करते हैं तो यह तुरंत क्रैश हो जाता है जिसमें अनुचित अक्षर हैं या ठीक से फॉर्मेट नहीं किया गया है।
IPv4 पता एक 32-बिट संख्यात्मक पता है, जिसे पीरियड्स द्वारा अलग किए गए चार नंबरों के रूप में लिखा गया है। प्रत्येक संख्या शून्य से 255 हो सकती है ।
हमें उन क्रैश से बचने के लिए इनपुट को पूर्व-मान्य करने के लिए एक उपकरण लिखने की आवश्यकता है, और हमारा विशिष्ट उपकरण picky है: एक मान्य प्रारूप ऐसा दिखेगा a.b.c.d
जहां a, b, c और d:
- एक प्रमुख शून्य के
0
साथ एक या एक प्राकृतिक संख्या हो सकती है । - 0 - 255 (समावेशी) के बीच होना चाहिए।
- चाहिए नहीं की तरह विशेष प्रतीक होने
+
,-
,,
, और अन्य। - दशमलव (बेस
10
) होना चाहिए
इनपुट : एक स्ट्रिंग
आउटपुट : सत्य या गलत मूल्य (मनमाने मूल्य भी स्वीकार किए जाते हैं)
परीक्षण के मामले :
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 1
,1,1,1,1
।