• Email : contact@refbax.com

Comment determiner la Classe d’une IP avec Python ?

📢 Image qui illustre un article sur le : return, IP", elif, IP" elif, Local IPv6", re.match(r"^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$",, ip_address.startswith("0."):, ip_address.startswith("128."):, ip_address.startswith("192."):, ipaddress.ip_address(ip_address), ip.is_private:, ip.is_reserved:, ip.is_multicast:, ip.is_unspecified:, ip.is_loopback:, ip.is_link_local:, ip.version, ip.is_global:, ip.is_site_local:, ip.is_unique_local:
Facebook
Twitter
LinkedIn
Temps de lecture : 2 minutes

Il existe plusieurs manières de déterminer la classe d’une adresse IP en Python. Voici deux options possibles :

Utiliser une expression régulière (regex) pour vérifier si l’adresse IP appartient à l’une des classes d’adresses suivantes :

  1. Classe A : adresses allant de 0.0.0.0 à 126.0.0.0
  2. Classe B : adresses allant de 128.0.0.0 à 191.0.0.0
  3. Classe C : adresses allant de 192.0.0.0 à 223.0.0.0

Voici un exemple de code qui utilise une regex pour vérifier si une adresse IP appartient à la classe A / B ou C :

import re

def get_ip_class(ip_address):
    if re.match(r"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$", ip_address):
        if ip_address.startswith("0."):
            return "Class A"
        elif ip_address.startswith("128."):
            return "Class B"
        elif ip_address.startswith("192."):
            return "Class C"
    return "Invalid IP"

# Exemples d'utilisation
print(get_ip_class("10.0.0.1"))  # "Class A"
print(get_ip_class("172.16.0.1"))  # "Class B"
print(get_ip_class("192.168.0.1"))  # "Class C"
print(get_ip_class("256.0.0.1"))  # "Invalid IP"

Il est aussi possible d’utiliser la bibliothèque ipaddress pour valider et analyser l’adresse IP. La bibliothèque ipaddress propose des fonctionnalités pour traiter et manipuler des adresses IP et des réseaux en Python. Voici un exemple de code qui utilise la bibliothèque ipaddress pour déterminer la classe d’une adresse IP :

import ipaddress

def get_ip_class(ip_address):
    try:
        ip = ipaddress.ip_address(ip_address)
        if ip.is_private:
            return "Private IP"
        elif ip.is_reserved:
            return "Reserved IP"
        elif ip.is_multicast:
            return "Multicast IP"
        elif ip.is_unspecified:
            return "Unspecified IP"
        elif ip.is_loopback:
            return "Loopback IP"
        elif ip.is_link_local:
            return "Link Local IP"
        else:
            if ip.version == 4:
                if ip.is_global:
                    if ip.is_private:
                        return "Private IP"
                    else:
                        return "Global IP"
                else:
                    return "Other IP"
            elif ip.version == 6:
                if ip.is_global:
                    return "Global IPv6"
                elif ip.is_link_local:
                    return "Link Local IPv6"
                elif ip.is_site_local:
                    return "Site Local IPv6"
                elif ip.is_unique_local:
                    return "Unique Local IPv6"
                else:
                    return "Other IPv6"
    except ValueError:
        return "Invalid IP"

# Exemples d'utilisation
print(get_ip_class("10.0.0.1"))  # "Private IP"
print(get_ip_class("172.16.0.1"))  # "Private IP"
print(get_ip_class("192.168.0.1"))  # "Private IP"
print(get_ip_class("8.8.8.8"))  # "Global IP"
print(get_ip_class("2001:0db8:85a3:0000:0000:8a2e:0370:7334"))  # "Global IPv6"
print(get_ip_class("fe80::1"))  # "Link Local IPv6"
print(get_ip_class("fd00::1"))  # "Unique Local IPv6"
print(get_ip_class("256.0.0.1"))  # "Invalid IP"

Notez que la bibliothèque ipaddress permet de déterminer non seulement la classe d’une adresse IP, mais également son type (privée, publique, de bouclage, etc.). Vous pouvez utiliser les différentes méthodes proposées par la bibliothèque pour obtenir ces informations.

Laisser un commentaire

Sur le même thème 🤩

Qu’est-ce qu’une adresse IP de classe C ?

Qu’est-ce qu’une adresse IP de classe C ?

Publié le 9 mai 2021
Lire la suite
Audit SEO gratuit

Audit SEO gratuit

Publié le 17 février 2019
Lire la suite
Pourquoi créer un blog ou site avec WordPress ?

Pourquoi créer un blog ou site avec WordPress ?

Publié le 22 novembre 2021
Lire la suite
Base de données / Database

Base de données / Database

Publié le 24 mai 2021
Lire la suite
Comment générer un QR Code avec Python ?

Comment générer un QR Code avec Python ?

Publié le 29 décembre 2022
Lire la suite
Reverse domain IP checker avec Python

Reverse domain IP checker avec Python

Publié le 29 décembre 2022
Lire la suite
Qui suis-je ! 👨‍💻

Enfilez-votre cape

Apprenez le webmarketing et le code grâce à nos différentes ressources et améliorez la visibilité de votre site internet, grâce à nos outils SEO.

refbax superhero bas