Evan Clark
Evan Clark

Reputation: 159

Sending packets with Scapy within Python environment

I am playing around with Scapy and I want to use it within a Python script but sending packets seem to be a problem. Here is my code.

Scapy Shell:

send(IP(src="10.0.99.100",dst="10.1.99.100")/ICMP()/"Hello World")

This works fine and sends the packet.

Python script:

#! /usr/bin/env python

from scapy.all import sr1,IP,ICMP

p=sr1(IP(src="10.0.99.100",dst="10.1.99.100")/ICMP()/"Hello World")

This runs fine but when it tries to send the packet I get:

WARNING: No route found for IPv6 destination :: (no default route?)
Begin emission:
.Finished to send 1 packets.
....^C
Received 5 packets, got 0 answers, remaining 1 packets

Upvotes: 6

Views: 37329

Answers (1)

RyPeck
RyPeck

Reputation: 8167

When you run this in the Python environment you are using the sr1 function. The sr1 function will send a packet and then wait for an answer, keeping a count of received packets. See more here -

http://www.secdev.org/projects/scapy/doc/usage.html#send-and-receive-packets-sr

To get the behavior you desire, you need to use the send function, just like you did when using the Scapy shell.

#! /usr/bin/env python

from scapy.all import send, IP, ICMP

send(IP(src="10.0.99.100",dst="10.1.99.100")/ICMP()/"Hello World")

Upvotes: 17

Related Questions