Aplikasi Kalkulator IP versi 4 sederhana
<!DOCTYPE html>
<html>
<head>
<title>IP Calculator</title>
<style>
body {
font-family: Arial, sans-serif;
}
.calculator {
width: 300px;
margin: 0 auto;
text-align: center;
}
input[type="text"], select {
width: 100%;
padding: 10px;
margin-bottom: 10px;
}
</style>
</head>
<body>
<div class="calculator">
<h1>IP Calculator</h1>
<input type="text" id="ipAddress" placeholder="Alamat IP (Contoh: 192.168.1.1)">
<input type="text" id="subnetMask" placeholder="Subnet Mask (Contoh: 255.255.255.0)">
<button onclick="calculate()">Hitung</button>
<br>
<p>Alamat Jaringan: <span id="networkAddress"></span></p>
<p>Subnet Mask: <span id="subnetMaskResult"></span></p>
<p>Prefix: <span id="prefix"></span></p>
<p>Alamat IP (Biner): <span id="binaryIpAddress"></span></p>
<p>Alamat Jaringan (Biner): <span id="binaryNetworkAddress"></span></p>
<p>Jumlah Host: <span id="hostCount"></span></p>
<p>Rentang Alamat IP yang Bisa Digunakan: <span id="ipRange"></span></p>
<p>Alamat Broadcast: <span id="broadcastAddress"></span></p>
<p>Jenis IP: <span id="ipType"></span></p>
</div>
<script>
function calculate() {
const ipAddress = document.getElementById("ipAddress").value;
const subnetMask = document.getElementById("subnetMask").value;
// Parse alamat IP dan subnet mask
const ipParts = ipAddress.split(".");
const subnetParts = subnetMask.split(".");
// Hitung alamat jaringan
const networkAddress = ipParts.map((part, index) => part & subnetParts[index]).join(".");
// Hitung alamat broadcast
const invertedSubnet = subnetParts.map(part => 255 - part);
const broadcastAddress = ipParts.map((part, index) => part | invertedSubnet[index]).join(".");
// Hitung jumlah host
const hostCount = Math.pow(2, 32 - subnetParts.reduce((total, part) => total + (255 - part + 1), 0)) - 2;
// Hitung prefix
const prefix = subnetParts.map(part => part.toString(2)).join("").replace(/0+$/, "").length;
// Tentukan jenis IP (Klasik atau Privat)
let ipType = "Klasik";
if (ipParts[0] == 10 ||
(ipParts[0] == 172 && ipParts[1] >= 16 && ipParts[1] <= 31) ||
(ipParts[0] == 192 && ipParts[1] == 168)) {
ipType = "Privat";
}
// Hitung rentang alamat IP yang bisa digunakan
const startRange = networkAddress.split(".").map((part, index) => (index === 3) ? parseInt(part) + 1 : parseInt(part)).join(".");
const endRange = broadcastAddress.split(".").map((part, index) => (index === 3) ? parseInt(part) - 1 : parseInt(part)).join(".");
// Tampilkan hasil
document.getElementById("networkAddress").textContent = networkAddress;
document.getElementById("subnetMaskResult").textContent = subnetMask;
document.getElementById("prefix").textContent = prefix;
document.getElementById("binaryIpAddress").textContent = ipParts.map(part => (parseInt(part)).toString(2).padStart(8, "0")).join(".");
document.getElementById("binaryNetworkAddress").textContent = networkAddress.split(".").map(part => (parseInt(part)).toString(2).padStart(8, "0")).join(".");
document.getElementById("hostCount").textContent = hostCount;
document.getElementById("ipRange").textContent = `${startRange} - ${endRange}`;
document.getElementById("broadcastAddress").textContent = broadcastAddress;
document.getElementById("ipType").textContent = ipType;
}
</script>
</body>
</html>
IP Calculator
Alamat Jaringan:
Subnet Mask:
Prefix:
Alamat IP (Biner):
Alamat Jaringan (Biner):
Jumlah Host:
Rentang Alamat IP yang Bisa Digunakan:
Alamat Broadcast:
Jenis IP:
Tidak ada komentar:
Posting Komentar