I recently used this to create a tethering program. It works well, but there is a large bug. In particular, in the sniff function. When you sniff UDP packets, Scapy miscalculates the length of the IP and UDP packets. What is happening is that Scapy uses the UDP length as the IP length, and then subtracts the size of the UDP header for the UDP header. If you then try and send it to another computer, the packet is "malformed" because the length is incorrect. To prove this, when you sniff a udp packet and then do packet.show(), the packet looks totally correct. If you use packet.show2(), the packet cuts off the end. This is because the show2 function uses the length and recalculates the checksum. To solve this, delete the packet[IP].len and the packet[UDP].len and then show2(). This correctly recalculates the length and shows the full packet.
I tried to use node.js instead of scapy, dropping down to a C++ addon that we wrote in order to do ioctl calls and send raw packets.
We ended up keeping the addon for the ioctl calls, but the addon for sending raw packets didn't make it: we didn't want to reconstruct the javascript object versions of packets sniffed by node_pcap in order to send them on the raw socket (didn't want to make a small mistake and break the whole project for ourselves).
So we used scapy that part of the tethering project; worked well for us though it could have used more docs.
Scapy and Impacket are basically Python scriptable versions of tcpdump / wireshark. Very useful tools, particularly for measuring a server's behavior without having to modify it for logging, etc. I once used pcapy to log several years of an NTP pool server to make this graph: http://imgur.com/IvRdU
I can't say I have tried, perhaps I will later, but how about netcat piped to sed?
Also, check out burpsuite for most of that functionality.. just not cli based.
Guess I'm not sure how/why this hit HN's front page? Scapy has been around for years. Nothing new to see here and, well, I'm not sure Scapy has a very vibrant development anymore... o_O