#!./gasp

description {
	name		"arp/request"
	description	"Simple ARP request"
	author		"Laurent Riesterer"
	version		"1.0"
	date		"25/01/2000"
	history		"Initial release"
}

options {
	address		[device ip]
}

packets {pkt cap}

#-------------------------------------------------------------------------------------------------
#	Generate ARP Request & wait for anwser
#-------------------------------------------------------------------------------------------------

script {
	# init packet
	pkt resize 1024
	pkt fill 0
	pkt deletemapper
	# build mappers
	pkt newmapper ethernet -setdefaults
	pkt ethernet configure -type arp -dest ff:ff:ff:ff:ff:ff
	
	pkt newmapper arp -setdefaults
	pkt arp configure -dest_ip $address

	pkt data ""

	# send it
	pkt send
	log::full "---- Sent ----" pkt

	# wait for answer
	if {[cap capture -filter "arp and ether dst [device ethernet]" -timeout 2000]} {
		cap decodefrom ethernet
		log::full "---- Capture ----" cap
		log::text "---- Reply ----\n[cap arp configure -src_ether]"
		log::summary "$address is at [cap arp configure -src_ether]"
	} else {
		log::text "---- No answer ----"
		log::summary "no answer"
	}
}
