Se sei un programmatore Python puoi usare il  programma di manipolazione interattiva dei pacchetti Scapy  per crea i tuoi pacchetti e inviali. Puoi anche usarlo come  libreria all'interno del tuo programma Python.  
 Dall'interno del programma interattivo ecco come è possibile creare un pacchetto IP, cambiare l'indirizzo di origine e inviarlo. Scapy utilizzerà qualsiasi percorso predefinito che hai impostato. 
>>> pkt = IP(src="1.2.3.4", dst="5.6.7.8")
>>> pkt.show()
###[ IP ]###
  version= 4
  ihl= None
  tos= 0x0
  len= None
  id= 1
  flags= 
  frag= 0
  ttl= 64
  proto= ip
  chksum= None
  src= 1.2.3.4
  dst= 5.6.7.8
  \options\
>>> pkt.send()
 La cosa divertente di Scapy è che crea tutte le intestazioni di livello inferiore per te se non le specifichi con valori predefiniti. Quindi nell'esempio precedente l'intestazione Ethernet viene creata per te già. Quindi probabilmente vuoi manipolare il livello TCP, quindi il codice seguente si baserà sull'esempio sopra. 
>>> ip_layer = IP(src="1.2.3.4", dst="5.6.7.8")
>>> tcp_layer = TCP()
>>> pkt = ip_layer/tcp_layer
>>> pkt.show()
###[ IP ]###
  version= 4
  ihl= None
  tos= 0x0
  len= None
  id= 1
  flags= 
  frag= 0
  ttl= 64
  proto= tcp
  chksum= None
  src= 1.2.3.4
  dst= 5.6.7.8
  \options\
###[ TCP ]###
     sport= ftp_data
     dport= http
     seq= 0
     ack= 0
     dataofs= None
     reserved= 0
     flags= S
     window= 8192
     chksum= None
     urgptr= 0
     options= {}
 Se i percorsi sono impostati correttamente per arrivare a destinazione dovresti essere in grado di inviare il pacchetto. Scapy sarà anche in grado di catturare la risposta e cosa no se necessario. La documentazione fornisce buoni esempi semplici, ma non include esempi più avanzati. L'API non è ben documentata, ma esiste una  versione di doxygen qui sopra.