>  기사  >  웹 프론트엔드  >  자바스크립트는 서브넷 마스크 변환기를 구현합니다.

자바스크립트는 서브넷 마스크 변환기를 구현합니다.

PHPz
PHPz원래의
2023-05-16 11:53:371009검색

인터넷의 발달과 함께 IP 주소는 다양한 분야에서 널리 사용됩니다. 그러나 IP 주소 분류는 특히 서브넷 마스크 구분에서 네트워크 관리자에게 혼란을 가져왔습니다. 서브넷 마스크는 IP 주소가 속하는 네트워크 부분과 호스트 부분을 결정하는 IP 주소의 일부입니다. 이번 글에서는 서브넷 마스크의 개념과 적용에 대한 이해를 돕기 위해 자바스크립트로 구현된 서브넷 마스크 변환기를 공유하겠습니다.

서브넷 마스크의 개념

IP 주소에서 서브넷 마스크는 네트워크 주소와 호스트 주소를 구분하는 데 사용됩니다. 32비트 바이너리로 구성되며 1은 네트워크 부분이고 0은 호스트 부분입니다. 서브넷 마스크의 기능은 IP 주소를 네트워크 주소와 호스트 주소의 두 부분으로 나누는 것입니다. IPv4를 예로 들면, 서브넷 마스크는 일반적으로 "접두사 길이"로 표현됩니다.

예를 들어 서브넷 마스크 255.255.255.0은 "/24"로 쓸 수 있습니다. 여기서 "24"는 접두사 길이를 나타냅니다. 즉, 처음 24비트는 네트워크 주소이고 마지막 8비트는 호스트 주소입니다. 서브넷에서는 특정 IP 주소를 "네트워크 주소 + 호스트 주소"의 형태로 표현할 수 있습니다.

서브넷 마스크 적용

서브넷 마스크의 주요 기능은 IP 주소를 네트워크 주소와 호스트 주소로 나누어 네트워크 분할 및 관리를 구현하는 것입니다. 일반적으로 네트워크의 모든 호스트는 동일한 네트워크 주소를 가지며, 서로 다른 호스트 주소는 서로 다른 호스트를 구별하는 데 사용됩니다. 서브넷 마스크가 잘못 설정되면 서브넷 사이의 호스트가 서로 통신할 수 없게 됩니다.

따라서 정상적인 네트워크 통신을 위해서는 네트워크 관리자가 서브넷 마스크를 올바르게 설정해야 합니다. 서브넷 마스크를 나누는 방법에는 클래스 A, 클래스 B, 클래스 C의 세 가지가 있습니다. 그 중 클래스 A 서브넷 마스크는 대규모 네트워크에 적합하고 클래스 B는 중간 규모 네트워크에 적합하며 클래스 C는 소규모 네트워크에 적합합니다.

JavaScript를 사용하여 서브넷 마스크 변환기를 구현합니다

아래에서는 JavaScript를 사용하여 서브넷 마스크 변환기를 구현하는 방법을 소개합니다. 이 도구는 서브넷 마스크를 10진수, 2진수 및 CIDR 접두사 길이로 변환할 수 있습니다.

  1. 서브넷 마스크 변환기용 HTML 코드
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>子网掩码转换器</title>
</head>
<body>
  <h1>子网掩码转换器</h1>
  <form>
    <p>
      子网掩码:<input type="text" id="subnetmask" size="30">
    </p>
    <p>
      <input type="button" value="十进制转换为二进制" onClick="decimalToBinary()">
      <input type="button" value="二进制转换为十进制" onClick="binaryToDecimal()">
      <input type="button" value="CIDR前缀长度转换为子网掩码" onClick="cidrToSubnetmask()">
    </p>
    <p>
      转换结果:<input type="text" id="result" size="30">
    </p>
  </form>
 
  <script src="subnetmask.js"></script>
</body>
</html>

이것은 서브넷 마스크를 입력하기 위한 텍스트 상자, 세 개의 버튼 및 변환 결과를 표시하기 위한 텍스트 상자가 포함된 간단한 HTML 인터페이스입니다. 버튼을 클릭하면 해당 JavaScript 함수가 변환을 위해 호출됩니다.

  1. 10진수를 2진수로 변환
function decimalToBinary() {
  var subnetmask = document.getElementById('subnetmask').value.trim();
  var result = '';
  if (subnetmask.length === 0 || isNaN(subnetmask)) {
    result = '请输入正确的十进制数值';
  } else {
    var binary = parseInt(subnetmask).toString(2);
    result = pad(binary, 32);
  }
  document.getElementById('result').value = result;
}

10진수 값을 32비트 2진수로 변환하는 함수입니다. 먼저 입력된 10진수 값을 텍스트 상자에서 읽은 다음 toString() 메서드를 사용하여 2진수로 변환합니다. 변환이 완료된 후에는 pad() 함수를 사용하여 32비트로 채워야 하며 이는 이후 작업에 도움이 됩니다. 마지막으로 텍스트 상자에 변환 결과를 표시합니다.

  1. 2진수를 10진수로 변환
function binaryToDecimal() {
  var subnetmask = document.getElementById('subnetmask').value.trim();
  var result = '';
  if (subnetmask.length === 0) {
    result = '请输入正确的二进制数值';
  } else if (!/^[01]{32}$/.test(subnetmask)) {
    result = '请输入32位二进制数值';
  } else {
    var decimal = parseInt(subnetmask, 2).toString();
    result = decimal;
  }
  document.getElementById('result').value = result;
}

32비트 2진수 값을 10진수로 변환하는 함수입니다. 먼저 입력이 올바른지, 즉 길이가 32비트 바이너리 값이고 0과 1만 포함되어 있는지 확인합니다. 입력이 올바르지 않으면 오류 메시지가 반환됩니다. 그렇지 않은 경우에는 parseInt() 메서드를 사용하여 이진 값을 십진 값으로 변환하고 결과를 텍스트 상자에 표시합니다.

  1. CIDR 접두사 길이를 서브넷 마스크로 변환
function cidrToSubnetmask() {
  var subnetmask = document.getElementById('subnetmask').value.trim();
  var result = '';
  if (subnetmask.length === 0 || isNaN(subnetmask)) {
    result = '请输入正确的CIDR前缀长度';
  } else if (subnetmask < 0 || subnetmask > 32) {
    result = 'CIDR前缀长度必须在0到32之间';
  } else {
    var binary = '1'.repeat(subnetmask) + '0'.repeat(32 - subnetmask);
    var subnetmask = binary.match(/.{1,8}/g).map(function(s) { return parseInt(s, 2); }).join('.');
    result = subnetmask;
  }
  document.getElementById('result').value = result;
}

CIDR 접두사 길이를 서브넷 마스크로 변환하는 기능입니다. 먼저 입력이 올바른지, 즉 길이가 십진수 값이고 합리적인 범위 내에 있는지 확인합니다. 입력이 올바르지 않으면 오류 메시지가 반환됩니다. 그렇지 않으면 접두사 길이를 32비트 이진 값으로 변환하고 match() 메서드를 사용하여 이를 4개의 8비트 이진 값으로 분할합니다. 그런 다음 map() 메서드를 사용하여 각 이진 값을 십진 값으로 변환하고, Join() 메서드를 사용하여 이를 4개의 세그먼트로 결합합니다. 마지막으로 텍스트 상자에 변환 결과를 표시합니다.

요약

이번 글에서는 서브넷 마스크의 개념과 응용을 소개하고, 자바스크립트로 구현한 서브넷 마스크 변환기를 공유했습니다. 이 도구는 네트워크 관리자가 서브넷 마스크의 개념과 적용을 더 잘 이해하고 잘못된 서브넷 마스크 설정으로 인해 발생하는 네트워크 문제를 효과적으로 해결하는 데 도움이 됩니다. 향후 네트워크 관리에 있어 이 도구가 확실히 도움이 될 것이라고 믿습니다.

위 내용은 자바스크립트는 서브넷 마스크 변환기를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.