====== Premiers scripts Python avec Scapy ======
===== Scan d'adresse IP d'un sous-réseau =====
==== Quelques compléments ====
* pour indiquer une plage d'adresses IP utiliser la syntaxe suivante pour l'attribut **dst** du paquet **IP** :
dsp='192.168.1.1-15'
Exemple de code dans un script python
#! /usr/bin/python
from scapy.all import *
plage = '192.168.1.1-15'
paquet = Ether() / IP(dst=plage) / ICMP()
rep,non_rep = srp(paquet, timeout=0.5 )
for element in rep : # element représente un couple (paquet émis, paquet reçu)
if element[1][ICMP].type == 0 : # 0 <=> echo-reply voir page de Wikipedia
print( element[0][IP].dst + ' a renvoye un echo-reply ')
for element in non_rep : # element représente un couple (paquet émis, paquet reçu)
if element[1][ICMP].type == 8 : # 8 <=> echo-request voir page de Wikipedia
print( element[O][IP].dst + ' : aucun echo-reply ')
==== A faire ====
* Q1 : **Ecrire** un script python **scanIpHote.py** qui indique si un hôte passé en paramètre répond au ping.
* Q2 : **Ecrire** un script python **scanIpPlage.py** qui :
* **scanne** les 50 premières adresses IP du **sous-réseau du BTS SIO**,
* indique les hôtes qui **répondent** au ping,
* indique les hôtes qui **ne répondent pas** au ping.
==== Retour à Python : la bibliothèque Scapy ... ====
* [[dev:python:scapy:accueil|Python : la bibliothèque Scapy pour manipuler les paquets réseau]]