Rumah > Artikel > hujung hadapan web > Bagaimana untuk mengesahkan sama ada ip boleh diakses dalam javascript
JavaScript ialah bahasa pengaturcaraan yang digunakan secara meluas yang boleh membantu kami membangunkan aplikasi yang sangat interaktif di tapak web dengan cepat. Dalam pembangunan tapak web, mengesahkan alamat IP ialah tugas biasa Mari kita terokai cara menggunakan JavaScript untuk mengesahkan alamat IP.
IPv4 ialah jenis alamat IP biasa, yang terdiri daripada empat nombor yang dipisahkan oleh noktah, setiap nombor berjulat dari 0 hingga 255. JavaScript boleh digunakan untuk mengesahkan kesahihan alamat IPv4 melalui ungkapan biasa.
Berikut ialah contoh kod yang boleh digunakan untuk mengesahkan alamat 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
Kami menggunakan ungkapan biasa untuk memadankan format alamat IP dan mengembalikan benar jika padanan berjaya, jika tidak pulangkan palsu. Dalam ungkapan biasa, kami menggunakan aksara paip (|) untuk menunjukkan berbilang corak padanan dan tanda soal (?) untuk menunjukkan bahawa boleh terdapat 0 atau 1 simbol.
IPv6 ialah jenis alamat IP baharu yang terdiri daripada lapan digit heksadesimal yang dipisahkan oleh titik bertindih. Memandangkan alamat IPv6 lebih kompleks daripada alamat IPv4, kami perlu menggunakan ungkapan biasa yang lebih kompleks untuk mengesahkan kesahihan alamat IPv6.
Berikut ialah contoh kod yang boleh digunakan untuk mengesahkan alamat 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
Dalam contoh di atas, kami menggunakan ungkapan biasa untuk memadankan alamat IPv6. Kelas aksara [a-fA-F0-9] digunakan dalam ungkapan biasa untuk mewakili aksara yang dibenarkan. Kami telah menggunakan titik bertindih (:) untuk memisahkan digit heksadesimal dan pendakap kerinting ({}) untuk menunjukkan had pada panjang simbol.
Kadangkala kita perlu mengesahkan sama ada alamat IP berada dalam segmen IP tertentu. Sebagai contoh, kami mungkin perlu menyekat akses ke tapak web kami kepada alamat IP dari kawasan tertentu. Berikut ialah contoh kod yang boleh digunakan untuk menentukan sama ada IP berada dalam julat 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
Dalam contoh di atas, kami mentakrifkan fungsi convertIpToNumber, yang digunakan untuk menukar rentetan alamat IP kepada Sebilangan jenis integer tidak bertanda 32-bit. Dengan menukar rentetan alamat IP kepada nombor, kita boleh membandingkan hubungan saiz antara dua alamat IP.
Kami menghuraikan alamat IP sasaran, memulakan alamat IP dan menamatkan alamat IP pada masa yang sama dalam fungsi. Menggunakan nombor yang dihuraikan ini, kami boleh menentukan sama ada alamat IP sasaran berada dalam julat IP tertentu.
Atas ialah kandungan terperinci Bagaimana untuk mengesahkan sama ada ip boleh diakses dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!