Develope/CodeLab

[Javascript] IP 형식 체크하는 정규식

oper0116 2025. 1. 7. 23:41
반응형

function isValidIP(ip) {
  // IPv4 정규식
  const ipv4Pattern = /^((25[0-5]|2[0-4][0-9]|1?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]?[0-9])$/;

  // IPv6 정규식
  const ipv6Pattern = /^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|(([0-9a-fA-F]{1,4}:){1,7}:|:|::([0-9a-fA-F]{1,4}:){1,6}))$/;

  // IPv4 체크
  if (ipv4Pattern.test(ip)) {
    return "IPv4";
  }

  // IPv6 체크
  if (ipv6Pattern.test(ip)) {
    return "IPv6";
  }

  // 형식이 맞지 않으면 false 반환
  return false;
}

// 테스트
console.log(isValidIP("192.168.0.1")); // IPv4
console.log(isValidIP("255.255.255.255")); // IPv4
console.log(isValidIP("1200:0000:AB00:1234:0000:2552:7777:1313")); // IPv6
console.log(isValidIP("::1")); // IPv6
console.log(isValidIP("invalid_ip")); // false
반응형