JavaScript는 웹사이트에서 대화형 애플리케이션을 빠르게 개발하는 데 도움이 되는 널리 사용되는 프로그래밍 언어입니다. 웹사이트 개발에서 IP 주소 확인은 일반적인 작업입니다. JavaScript를 사용하여 IP 주소를 확인하는 방법을 살펴보겠습니다.
IPv4는 일반적인 유형의 IP 주소로, 마침표로 구분된 4개의 숫자로 구성되며 각 숫자 범위는 0~255입니다. JavaScript를 사용하면 정규식을 통해 IPv4 주소의 적법성을 확인할 수 있습니다.
다음은 IPv4 주소를 확인하는 데 사용할 수 있는 코드 예제입니다.
function validateIPv4Address(ipAddress) { var ipv4Pattern = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/; return ipv4Pattern.test(ipAddress); } // 示例 console.log(validateIPv4Address('192.168.0.1')); // true console.log(validateIPv4Address('')); // false console.log(validateIPv4Address('256.168.0.1')); // false
정규식을 사용하여 IP 주소 형식을 일치시키고 일치에 성공하면 true를 반환하고, 그렇지 않으면 false를 반환합니다. 정규식에서는 파이프 문자(|)를 사용하여 일치하는 패턴이 여러 개임을 나타내고 물음표(?)를 사용하여 기호가 0개 또는 1개 있을 수 있음을 나타냅니다.
IPv6은 콜론으로 구분된 8개의 16진수 숫자로 구성된 새로운 유형의 IP 주소입니다. IPv6 주소는 IPv4 주소보다 더 복잡하므로 IPv6 주소의 적법성을 확인하려면 더 복잡한 정규식을 사용해야 합니다.
다음은 IPv6 주소를 확인하는 데 사용할 수 있는 코드 예제입니다.
function validateIPv6Address(ipAddress) { var ipv6Pattern = /^[a-fA-F0-9]{1,4}(:[a-fA-F0-9]{1,4}){7}$/; return ipv6Pattern.test(ipAddress); } // 示例 console.log(validateIPv6Address('2001:0db8:85a3:0000:0000:8a2e:0370:7334')); // true console.log(validateIPv6Address('')); // false console.log(validateIPv6Address('2001::7334')); // false
위 예제에서는 정규 표현식을 사용하여 IPv6 주소와 일치시켰습니다. 문자 클래스 [a-fA-F0-9]는 정규식에서 허용되는 문자를 나타내는 데 사용됩니다. 16진수를 구분하기 위해 콜론(:)을 사용하고 기호 길이 제한을 나타내기 위해 중괄호({})를 사용했습니다.
때때로 IP 주소가 특정 IP 세그먼트에 있는지 확인해야 할 때가 있습니다. 예를 들어, 당사는 특정 지역의 IP 주소로 당사 웹사이트에 대한 접근을 제한해야 할 수도 있습니다. 다음은 IP가 특정 IP 세그먼트 내에 있는지 확인하는 데 사용할 수 있는 샘플 코드입니다.
function validateIpInRange(ipAddress, ipRange) { var startIp = ipRange.split('-')[0]; var endIp = ipRange.split('-')[1]; function convertIpToNumber(ipAddress) { return ipAddress.split('.').reduce(function (result, octet) { return (result << 8) + parseInt(octet, 10); }, 0) >>> 0; } var startIpNumber = convertIpToNumber(startIp); var endIpNumber = convertIpToNumber(endIp); var ipNumber = convertIpToNumber(ipAddress); return ipNumber >= startIpNumber && ipNumber <= endIpNumber; } // 示例 console.log(validateIpInRange('192.168.0.1', '192.168.0.0-192.168.0.255')); // true console.log(validateIpInRange('192.168.1.1', '192.168.0.0-192.168.0.255')); // false
위의 예에서는 IP 주소 문자열을 32비트 문자열로 변환하는 데 사용되는 ConvertIpToNumber 함수를 정의했습니다. unsigned 정수 유형의 숫자입니다. IP 주소 문자열을 숫자로 변환하면 두 IP 주소의 상대적인 크기를 비교할 수 있습니다.
함수에서 대상 IP 주소, 시작 IP 주소, 끝 IP 주소를 동시에 구문 분석합니다. 이러한 구문 분석된 숫자를 사용하여 대상 IP 주소가 지정된 IP 범위 내에 있는지 확인할 수 있습니다.
위 내용은 자바스크립트에서 해당 IP에 접근할 수 있는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!