diff --git a/api/README.md b/api/README.md index d27ab2f..a058c1e 100644 --- a/api/README.md +++ b/api/README.md @@ -291,7 +291,7 @@ L'applications dépend de la base de données pour fonctionner. Il faut donc lan | Method | URL | Description | Need token | Roles | | ------ | --------------- | ----------- | ---------- | ----- | -| GET | /ipv4/mask/{ip} | Get mask | True | User | +| GET | /ipv4/mask/{ip}/{mask} | Get mask | True | User | #### Get VLSM diff --git a/front-js/src/app/modules/ping/cours.tsx b/front-js/src/app/modules/ping/cours.tsx index 71fb9e2..0b914cb 100644 --- a/front-js/src/app/modules/ping/cours.tsx +++ b/front-js/src/app/modules/ping/cours.tsx @@ -12,26 +12,25 @@ import axios from "@/axiosConfig"; import Cookies from "js-cookie"; import { AxiosError } from "axios"; import Button from "@/components/Button"; -import { Alert } from "@mui/material"; +import { Alert, CircularProgress } from "@mui/material"; import Box from "@/components/Box"; const Cours: React.FC = () => { const [pingTest, setPing] = useState(""); const [res, setRes] = useState(""); const [valid, setValid] = useState(false); + const [isLoading, setIsLoading] = useState(false); const handlePing = async (e: { preventDefault: () => void }) => { + setIsLoading(true); e.preventDefault(); try { - const ipAddress = pingTest.replace('ping ', ''); - const response = await axios.get( - "/scapy/ping/" + ipAddress, - { - headers: { - Authorization: `Bearer ${Cookies.get("access_token")}`, - }, - } - ); + const ipAddress = pingTest.replace("ping ", ""); + const response = await axios.get("/scapy/ping/" + ipAddress, { + headers: { + Authorization: `Bearer ${Cookies.get("access_token")}`, + }, + }); const data = response.data; if (response.status === 200) { setRes(data.destination); @@ -52,6 +51,7 @@ const Cours: React.FC = () => { setRes("false"); } } + setIsLoading(false); }; return ( @@ -60,92 +60,92 @@ const Cours: React.FC = () => { Introduction - Le ping est un outil de diagnostic réseau utilisé pour tester la connectivité entre deux hôtes - sur un réseau IP. Il fonctionne en envoyant des paquets ICMP (Internet Control Message Protocol) - de type à un hôte cible et en attendant des réponses. - Le ping est couramment utilisé pour vérifier si un hôte est accessible, mesurer le temps de - latence entre deux hôtes, et diagnostiquer les problèmes de réseau. + Le ping est un outil de diagnostic réseau utilisé pour tester la + connectivité entre deux hôtes sur un réseau IP. Il fonctionne en + envoyant des paquets ICMP (Internet Control Message Protocol) de + type à un hôte cible et en attendant des réponses. Le ping est + couramment utilisé pour vérifier si un hôte est accessible, mesurer + le temps de latence entre deux hôtes, et diagnostiquer les problèmes + de réseau. Structure paquet ICMP - Un paquet ICMP est encapsulé dans un paquet IP et contient plusieurs champs spécifiques. - La structure d'un paquet ICMP Requête/Réponse est la suivante : + Un paquet ICMP est encapsulé dans un paquet IP et contient plusieurs + champs spécifiques. La structure d’un paquet ICMP + Requête/Réponse est la suivante : + L’entête est composée de : - L'entête est composée de : + 1. Type (1 octet) : Ce champ indique le type de message ICMP. - 1. Type (1 octet) : Ce champ indique le type de message ICMP. + 2. Code (1 octet) : Fournit des informations supplémentaires sur le + type. - 2. Code (1 octet) : Fournit des informations supplémentaires sur le type. - - - 3. Checksum (2 octets) : Ce champ contient une somme de contrôle utilisée pour vérifier l'intégrité du paquet ICMP. + 3. Checksum (2 octets) : Ce champ contient une somme de contrôle + utilisée pour vérifier l’intégrité du paquet ICMP. - 4. Identifiant (2 octets) : Identifie de manière unique une requête/réponse. + 4. Identifiant (2 octets) : Identifie de manière unique une + requête/réponse. - 5. Numéro de séquence (2 octets) : Ce champ est utilisé pour numéroter les paquets dans une session de ping, - permettant de détecter les pertes de paquets. + 5. Numéro de séquence (2 octets) : Ce champ est utilisé pour + numéroter les paquets dans une session de ping, permettant de + détecter les pertes de paquets. - Après l'entête, nous retrouvons toutes les données qui sont envoyés dans le paquet ICMP. + Après l’entête, nous retrouvons toutes les données qui sont + envoyés dans le paquet ICMP. - - Voici un exemple de commande que vous pourriez utiliser afin de réaliser un ping : + + Voici un exemple de commande que vous pourriez utiliser afin de + réaliser un ping : - + - Réponse d'une requête ping + Réponse d’une requête ping + Envoi de l’Echo Request : - Envoi de l'Echo Request : - - - Lorsque vous envoyez un ping à un autre appareil, votre ordinateur crée un petit message appelé "Echo Request". - Ce message est envoyé à l'adresse IP de l'appareil cible. - - - Réception de l'Echo Request : - - - L'appareil cible reçoit le message "Echo Request". - Il vérifie que le message n'est pas corrompu en utilisant une somme de contrôle (checksum). - - - Création de l'Echo Reply : - - - Si le message est correct, l'appareil cible crée un nouveau message appelé "Echo Reply". - Ce message contient les mêmes informations que l'Echo Request, mais avec un type différent pour indiquer qu'il s'agit d'une réponse. + Lorsque vous envoyez un ping à un autre appareil, votre ordinateur + crée un petit message appelé "Echo Request". Ce message + est envoyé à l’adresse IP de l’appareil cible. + Réception de l’Echo Request : - Envoi de l'Echo Reply : + L’appareil cible reçoit le message "Echo Request". + Il vérifie que le message n’est pas corrompu en utilisant une + somme de contrôle (checksum). + Création de l’Echo Reply : - L'appareil cible envoie le message "Echo Reply" à votre ordinateur. - Votre ordinateur reçoit ce message et peut ainsi confirmer que l'appareil cible est accessible. + Si le message est correct, l’appareil cible crée un nouveau + message appelé "Echo Reply". Ce message contient les mêmes + informations que l’Echo Request, mais avec un type différent + pour indiquer qu’il s’agit d’une réponse. + Envoi de l’Echo Reply : - Mesure du Temps de Réponse : + L’appareil cible envoie le message "Echo Reply" à + votre ordinateur. Votre ordinateur reçoit ce message et peut ainsi + confirmer que l’appareil cible est accessible. + Mesure du Temps de Réponse : - Votre ordinateur mesure le temps écoulé entre l'envoi de l'Echo Request et la réception de l'Echo Reply. - Ce temps est appelé "latence" et vous donne une idée de la rapidité de la connexion réseau. + Votre ordinateur mesure le temps écoulé entre l’envoi de + l’Echo Request et la réception de l’Echo Reply. Ce temps + est appelé "latence" et vous donne une idée de la rapidité + de la connexion réseau. Essayez ! <Emoji name="test-tube" width={32} /> - Tentez de ping le site de l'iut de Vélizy. + Tentez de ping le site de l’iut de Vélizy. {