I figure that messing with IP stuff at any point in time is a Bad Idea (TM), so doing anything at all with the pcs IP or Ethernet layer shouldn't be done. Ideally, I should be able to point an IP packet (filled with TCP data and payload) at some IP address, and everything will get sorted out.
I figure it'll work something like the code below (need root, open two Terminals, call recv() before send()). Not sure that much more robustness is needed...
from socket import *
host = gethostbyname(gethostname())
port = 0
text = "Hello"
sender = socket(AF_INET,SOCK_RAW,IPPROTO_IP)
recver = socket(AF_INET,SOCK_RAW,IPPROTO_IP)
data = recver.recv(1024)