Problem
- Write a algorithm that will identify valid IPv4 addresses in dot-decimal format.
- 점으로 구분된 10진수 형식(dot-decimal format)의 유효한 IPv4 주소를 식별하는 알고리즘을 작성한다.
- IPs should be considered valid if they consist of four octets, with values between ‘0’ and ‘255’, inclusive.
- IP는 ‘0’에서 ‘255’ 사이의 값을 포함한다.
- 4개의 8진수(octet)로 구성되는 경우 유효한 것으로 간주한다.
Solution 01
function isValidIP(str) {
let arr = str.split('.');
const validNums = arr.every(i => '' + parseInt(i, 10) === i && i >= 0 && i <= 255);
const validLength = arr.length === 4;
return validNums && validLength;
}
isValidIP(''); // false
isValidIP('0.0.0.0'); // true
isValidIP('0.0.0.0.0'); // false
isValidIP('0.0.0.256'); // false
isValidIP('192.168.0.1'); // true
isValidIP('a.b.c.d'); // false
isValidIP('01.02.03.04'); // false
isValidIP(' 1. 2.3 .4 '); // false
Solution 02
function isValidIP(str) {
return require('net').isIPv4(str);
}
isValidIP(''); // false
isValidIP('0.0.0.0'); // true
isValidIP('0.0.0.0.0'); // false
isValidIP('0.0.0.256'); // false
isValidIP('192.168.0.1'); // true
isValidIP('a.b.c.d'); // false
isValidIP('01.02.03.04'); // false
isValidIP(' 1. 2.3 .4 '); // false