ネットワークスキャンツールは、入力についてうるさくうるさいので、不適切な文字を含むIPv4アドレスまたは適切にフォーマットされていないIPv4アドレスを入力すると、すぐにクラッシュします。
IPv4アドレスは、ピリオドで区切られた4つの数字として記述された32ビットの数値アドレスです。各番号は0〜255にできます。
これらのクラッシュを回避するために、入力を事前検証するツールを作成する必要がありますが、特定のツールには注意が必要です。有効な形式はa.b.c.d
、a、b、c、dのようになります。
- 先行ゼロなしの
0
自然数または自然数を指定できます。 - 0から255の間(両端を含む)でなければなりません。
- 必要がありませんのような特殊な記号含まれ
+
、-
、,
、などを。 - 10進数でなければなりません(基数
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)
これはcode-golfなので、最少バイトが勝ちます!
ユーザーへの注意 -テストケースをさらに追加する場合は、(編集を提案することで)歓迎されます。しかし、テストケースが繰り返されないようにしてください!ありがとう
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
。