Maison  >  Article  >  interface Web  >  Comment vérifier si l'ip est accessible en javascript

Comment vérifier si l'ip est accessible en javascript

WBOY
WBOYoriginal
2023-05-21 09:40:081367parcourir

JavaScript est un langage de programmation largement utilisé qui peut nous aider à développer rapidement des applications hautement interactives sur des sites Web. Dans le développement de sites Web, la vérification des adresses IP est une tâche courante. Voyons comment utiliser JavaScript pour vérifier les adresses IP.

  1. Vérification d'adresse IPv4

IPv4 est un type courant d'adresse IP, composé de quatre chiffres séparés par des points, chaque chiffre allant de 0 à 255. JavaScript peut être utilisé pour vérifier la légitimité des adresses IPv4 via des expressions régulières.

Ce qui suit est un exemple de code qui peut être utilisé pour vérifier une adresse 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

Nous utilisons une expression régulière pour faire correspondre le format de l'adresse IP et renvoyons vrai si la correspondance est réussie, sinon renvoyons faux. Dans les expressions régulières, nous utilisons le caractère barre verticale (|) pour indiquer plusieurs modèles de correspondance et le point d'interrogation (?) pour indiquer qu'il peut y avoir 0 ou 1 symbole.

  1. Vérification d'adresse IPv6

IPv6 est un nouveau type d'adresse IP composé de huit chiffres hexadécimaux séparés par des deux-points. Étant donné que les adresses IPv6 sont plus complexes que les adresses IPv4, nous devons utiliser des expressions régulières plus complexes pour vérifier la légitimité des adresses IPv6.

Voici un exemple de code qui peut être utilisé pour vérifier une adresse 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

Dans l'exemple ci-dessus, nous avons utilisé une expression régulière pour faire correspondre l'adresse IPv6. La classe de caractères [a-fA-F0-9] est utilisée dans les expressions régulières pour représenter les caractères autorisés. Nous avons utilisé des deux-points (:) pour séparer les chiffres hexadécimaux et des accolades ({}) pour indiquer une limite sur la longueur des symboles.

  1. Déterminer si l'adresse IP se trouve dans un certain segment IP

Parfois, nous devons vérifier si une adresse IP se trouve dans un certain segment IP. Par exemple, nous devrons peut-être restreindre l'accès à notre site Web aux adresses IP de certaines zones. Voici un exemple de code qui peut être utilisé pour déterminer si l'adresse IP se trouve dans un certain segment 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

Dans l'exemple ci-dessus, nous avons défini une fonction convertIpToNumber, qui est utilisée pour convertir la chaîne d'adresse IP en une chaîne de 32 bits. non signé Nombre de type entier. En convertissant la chaîne d'adresse IP en nombre, nous pouvons comparer la relation de taille entre deux adresses IP.

Nous analysons l'adresse IP cible, l'adresse IP de début et l'adresse IP de fin en même temps dans la fonction. À l'aide de ces nombres analysés, nous pouvons déterminer si l'adresse IP cible se trouve dans une plage IP donnée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn