• 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:
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.

Facebook
Twitter
LinkedIn

Laisser un commentaire

Ces articles peuvent aussi vous intérresser

Qui suis-je ! 👨‍💻
Parfois on cherche par catégorie 📌

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
Premier site alliant formation / Actualité et les offres d’emplois autour des métiers du digital. Des outils pour vous aider dans vos campagnes de content marketing ou de SEO.
Premier site alliant formation / Actualité et les offres d’emplois autour des métiers du digital. Des outils pour vous aider dans vos campagnes de content marketing ou de SEO.
Contact Us