Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >javascript melaksanakan penukar topeng subnet

javascript melaksanakan penukar topeng subnet

PHPz
PHPzasal
2023-05-16 11:53:371078semak imbas

Dengan perkembangan Internet, alamat IP digunakan secara meluas dalam pelbagai bidang Namun, klasifikasi alamat IP telah membawa kekeliruan tertentu kepada pentadbir rangkaian, terutamanya dalam bahagian subnet mask. Subnet mask ialah sebahagian daripada alamat IP yang menentukan bahagian rangkaian dan bahagian hos yang mana alamat IP dimiliki. Dalam artikel ini, kami akan berkongsi penukar subnet mask yang dilaksanakan dalam JavaScript untuk membantu anda memahami dengan lebih baik konsep dan aplikasi subnet mask.

Konsep subnet mask

Dalam alamat IP, subnet mask digunakan untuk membahagikan alamat rangkaian dan alamat hos. Ia terdiri daripada 32 bit binari dengan 1 untuk bahagian rangkaian dan 0 untuk bahagian hos. Tujuan subnet mask adalah untuk membahagikan alamat IP kepada dua bahagian: alamat rangkaian dan alamat hos. Mengambil IPv4 sebagai contoh, topeng subnet biasanya dinyatakan dalam istilah "panjang awalan".

Sebagai contoh, subnet mask 255.255.255.0 boleh ditulis sebagai "/24", dengan "24" mewakili panjang awalan. Ini bermakna 24 bit pertama ialah alamat rangkaian dan 8 bit terakhir ialah alamat hos. Dalam subnet, alamat IP tertentu boleh dinyatakan dalam bentuk "alamat rangkaian + alamat hos".

Aplikasi subnet mask

Fungsi utama subnet mask adalah untuk membahagikan alamat IP kepada alamat rangkaian dan alamat hos, dengan itu merealisasikan pembahagian dan pengurusan rangkaian. Biasanya, semua hos dalam rangkaian mempunyai alamat rangkaian yang sama, dan alamat hos yang berbeza digunakan untuk membezakan hos yang berbeza. Jika topeng subnet ditetapkan secara tidak betul, hos antara subnet tidak akan dapat berkomunikasi antara satu sama lain.

Oleh itu, untuk memastikan komunikasi rangkaian biasa, pentadbir rangkaian perlu menetapkan topeng subnet dengan betul. Terdapat tiga cara untuk membahagikan topeng subnet: Kelas A, Kelas B dan Kelas C. Antaranya, topeng subnet Kelas A sesuai untuk rangkaian berskala besar, Kelas B sesuai untuk rangkaian bersaiz sederhana, dan Kelas C sesuai untuk rangkaian berskala kecil.

JavaScript melaksanakan penukar subnet mask

Di bawah, kami akan memperkenalkan cara menggunakan JavaScript untuk melaksanakan penukar subnet mask Alat ini boleh menukar topeng subnet daripada perpuluhan, binari dan Tukar antara awalan CIDR panjang.

  1. Kod HTML untuk penukar subnet mask
<!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>

Ini ialah antara muka HTML ringkas yang mengandungi kotak teks untuk memasukkan subnet mask, tiga butang dan kotak teks yang menunjukkan hasil penukaran. Apabila butang diklik, fungsi JavaScript yang sepadan akan dipanggil untuk penukaran.

  1. Tukar perpuluhan kepada perduaan
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;
}

Ini ialah fungsi yang menukar nilai perpuluhan kepada perduaan 32-bit. Ia mula-mula membaca nilai perpuluhan yang dimasukkan daripada kotak teks dan kemudian menukarnya kepada binari menggunakan kaedah toString(). Sila ambil perhatian bahawa selepas penukaran selesai, anda perlu menggunakan fungsi pad() untuk pad ia kepada 32 bit, yang akan membantu untuk operasi kemudian. Akhir sekali, paparkan hasil penukaran dalam kotak teks.

  1. Penukaran binari kepada perpuluhan
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;
}

Ini ialah fungsi yang menukar nilai binari 32-bit kepada nilai perpuluhan. Ia mula-mula menyemak sama ada input adalah betul, iaitu, sama ada panjang adalah nilai binari 32-bit dan mengandungi hanya 0s dan 1s. Jika input tidak betul, mesej ralat akan dikembalikan. Jika tidak, gunakan kaedah parseInt() untuk menukar nilai binari kepada nilai perpuluhan dan memaparkan hasilnya dalam kotak teks.

  1. Tukar panjang awalan CIDR kepada subnet mask
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;
}

Ini ialah fungsi yang menukar panjang awalan CIDR kepada subnet mask. Ia mula-mula menyemak sama ada input adalah betul, iaitu sama ada panjang adalah nilai perpuluhan dan dalam julat yang munasabah. Jika input tidak betul, mesej ralat akan dikembalikan. Jika tidak, tukar panjang awalan kepada nilai binari 32-bit dan gunakan kaedah padanan() untuk membahagikannya kepada empat nilai binari 8-bit. Kemudian, gunakan kaedah map() untuk menukar setiap nilai binari kepada nilai perpuluhan dan gunakan kaedah join() untuk mencantumkannya kepada 4 segmen. Akhir sekali, paparkan hasil penukaran dalam kotak teks.

Ringkasan

Dalam artikel ini, kami memperkenalkan konsep dan aplikasi subnet mask dan berkongsi penukar subnet mask yang dilaksanakan dalam JavaScript. Alat ini boleh membantu pentadbir rangkaian lebih memahami konsep dan aplikasi topeng subnet serta menyelesaikan masalah rangkaian dengan berkesan yang disebabkan oleh tetapan topeng subnet yang salah. Dalam pengurusan rangkaian masa hadapan, kami percaya bahawa alat ini pasti akan membantu anda.

Atas ialah kandungan terperinci javascript melaksanakan penukar topeng subnet. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:pelaksanaan penapis javascriptArtikel seterusnya:pelaksanaan penapis javascript