pylibnet:
python
module for libnet
#!/usr/bin/python
import libnet
tgt_eth='\x00'*6
broadcast_eth='\xff'*6
src_ip=libnet.int2str(libnet.name_resolve('192.168.1.2',0))
tgt_ip=libnet.int2str(libnet.name_resolve('192.168.1.1',0))
if __name__=="__main__":
ifc = libnet.interface()
ifc.open_link(libnet.select_device(None))
src_eth = ifc.get_hwaddr()
print '\nsource ethernet address:'
libnet.hex_dump (src_eth)
pkt = libnet.packet()
pkt.build_arp(libnet.ARPHRD_ETHER,
libnet.ETHERTYPE_IP,
libnet.ETHER_ADDR_LEN,
4,
libnet.ARPOP_REQUEST,
src_eth,
src_ip,
tgt_eth,
tgt_ip)
pkt.build_ethernet(broadcast_eth,
src_eth,
libnet.ETHERTYPE_ARP)
print '\nARP request with ethernet header:'
print pkt
ifc.write(pkt)

davidma@eskimo.com