Ihr Netzwerk-Scan-Tool ist bei Eingaben ärgerlich wählerisch und stürzt sofort ab, wenn Sie eine IPv4-Adresse eingeben, die unzulässige Zeichen enthält oder nicht richtig formatiert ist.
Eine IPv4-Adresse ist eine numerische 32-Bit-Adresse, die als vier durch Punkte getrennte Zahlen geschrieben wird. Jede Zahl kann zwischen Null und 255 liegen .
Wir müssen ein Tool schreiben, um die Eingabe vorab zu validieren , um diese Abstürze zu vermeiden, und unser spezielles Tool ist wählerisch: Ein gültiges Format sieht wie folgt aus: a.b.c.d
a, b, c und d:
- Kann eine
0
oder eine natürliche Zahl ohne führende Nullen sein . - Sollte zwischen 0 und 255 (einschließlich) liegen.
- Sollte nicht enthalten spezielle Symbole wie
+
,-
,,
und andere. - Sollte dezimal sein (Basis
10
)
Eingabe : Eine Zeichenfolge
Ausgabe : Wahrheitswert oder falscher Wert (beliebige Werte werden ebenfalls akzeptiert)
Testfälle :
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)
Dies ist Code-Golf , so dass nur wenige Bytes gewinnen!
Hinweis für die Benutzer - Wenn Sie weitere Testfälle hinzufügen möchten, werden Sie begrüßt (indem Sie eine Bearbeitung vorschlagen). Achten Sie jedoch darauf, dass sich die Testfälle nicht wiederholen! Vielen Dank
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
.