function calculateSubnet() {
    const ipAddress = document.getElementById('ip-address').value;
    const subnetMask = document.getElementById('subnet-mask').value;

    if (validateIPAddress(ipAddress) && validateSubnetMask(subnetMask)) {
        const result = `IP Adresi: ${ipAddress}\nSubnet Mask: ${subnetMask}`;
        document.getElementById('result').textContent = result;
    } else {
        document.getElementById('result').textContent = 'Geçersiz IP Adresi veya Subnet Mask!';
    }
}

function performPing() {
    const pingAddress = document.getElementById('ping-address').value;

    if (validateIPAddress(pingAddress)) {
        // Basit bir simülasyon
        const output = `PING ${pingAddress}: Zaman aşımı`;
        document.getElementById('ping-output').textContent = output;
    } else {
        document.getElementById('ping-output').textContent = 'Geçersiz IP Adresi!';
    }
}

function scanPort() {
    const scanIp = document.getElementById('scan-ip').value;
    const scanPort = document.getElementById('scan-port').value;

    if (validateIPAddress(scanIp) && validatePort(scanPort)) {
        fetch(`portscan.php?ip=${encodeURIComponent(scanIp)}&port=${encodeURIComponent(scanPort)}`)
            .then(response => response.text())
            .then(data => {
                document.getElementById('port-output').textContent = data;
            })
            .catch(error => {
                document.getElementById('port-output').textContent = 'Bir hata oluştu!';
            });
    } else {
        document.getElementById('port-output').textContent = 'Geçersiz IP Adresi veya Port Numarası!';
    }
}

function validateIPAddress(ip) {
    const ipRegex = /^(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[0-1]?[0-9][0-9]?)$/;
    return ipRegex.test(ip);
}

function validateSubnetMask(mask) {
    const maskRegex = /^(255\.){3}(255|254|252|248|240|224|192|128|0)\.(255|254|252|248|240|224|192|128|0)\.(255|254|252|248|240|224|192|128|0)$/;
    return maskRegex.test(mask);
}

function validatePort(port) {
    const portNum = parseInt(port, 10);
    return Number.isInteger(portNum) && portNum >= 1 && portNum <= 65535;
}