Pregunta

from scapy.all import *
import socket 

s = socket.socket(socket.AF_INET, socket.SOCK_RAW,socket.IPPROTO_RAW)
s.bind(("127.0.0.1", 0))
pe=Ether()/IP(src="10.0.0.1",dst="10.0.0.2")/ICMP()
data = pe.build()
while True:
     s.send(data)

Though I had mention the destination address but still with this script I got this error

WARNING: No route found for IPv6 destination :: (no default route?)

Traceback (most recent call last):

File "testing.py", line 12, in

s.send(data)

socket.error: [Errno 89] Destination address required
¿Fue útil?

Solución

  1. Use AF_PACKET instead of AF_INET.

    s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW,socket.IPPROTO_RAW)
    
  2. Bind to the device name instead of address.

    s.bind(("lo", 0))
    

    (lo is loopback device name. Replace it with actual device name if you want to send the packet outside the machine.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top