Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

README.md

🌐 Count IP Addresses

Codewars Language Framework

📘 Description

Écrire une fonction qui reçoit deux adresses IPv4 sous forme de chaînes de caractères et retourne le nombre d’adresses IP situées entre elles.

Le calcul doit :

  • inclure la première adresse
  • exclure la dernière adresse

Toutes les entrées sont des adresses IPv4 valides au format texte, et la seconde adresse est toujours strictement supérieure à la première.

🔗 Kata Codewars - Count IP Addresses

• • •

⚙️ Règles

La fonction doit :

  • recevoir deux chaînes représentant des adresses IPv4
  • convertir chaque adresse en une valeur numérique exploitable
  • retourner la différence entre la seconde et la première

Une adresse IPv4 est composée de 4 octets séparés par des points :

a.b.c.d

Chaque octet possède une valeur comprise entre 0 et 255.

• • •

💡 Principe

L’idée consiste à convertir une adresse IPv4 en un entier non signé sur 32 bits.

Par exemple :

10.0.0.0

correspond à :

10 × 256³ + 0 × 256² + 0 × 256 + 0

Une fois les deux adresses converties, il suffit de calculer :

valeurFin - valeurDébut

• • •

🔎 Exemples

Adresse de début Adresse de fin Résultat
10.0.0.0 10.0.0.50 50
10.0.0.0 10.0.1.0 256
20.0.0.10 20.0.1.0 246

• • •

🧠 Approche algorithmique

Une implémentation classique peut suivre les étapes suivantes :

  1. découper chaque adresse avec le séparateur .
  2. convertir chaque bloc en entier
  3. reconstruire la valeur numérique complète de l’adresse IPv4
  4. soustraire la première valeur à la seconde

Exemple de logique en C# :

(((a * 256) + b) * 256 + c) * 256 + d

Cette approche permet un calcul :

  • simple
  • fiable
  • performant

• • •

🧪 Tests

Les tests unitaires associés sont disponibles dans le projet :

Les tests couvrent généralement :

  • des écarts simples sur le dernier octet
  • des passages d’un sous-réseau à un autre
  • des écarts plus larges entre deux adresses IPv4
  • la validité du calcul sur plusieurs cas représentatifs

• • •

🧾 Résumé

La fonction doit :

  • recevoir deux adresses IPv4
  • les convertir en valeurs numériques
  • retourner le nombre d’adresses comprises entre elles
  • inclure la première et exclure la dernière

C’est un kata classique d’algorithmie autour de :

  • la manipulation de chaînes
  • la conversion numérique
  • la représentation binaire / réseau des adresses IPv4