#!/usr/bin/env ruby
#
# $Id: tcp 172 2010-03-16 07:07:04Z jhart $
#
# Send a DNS request
require 'rubygems'
require 'racket'
include Racket
unless (ARGV.size == 3)
puts "Usage: #{$0} "
exit
end
n = Racket::Racket.new
n.iface = "eth0"
n.l3 = Racket::L3::IPv4.new
n.l3.src_ip = ARGV[0]
n.l3.dst_ip = ARGV[1]
n.l3.protocol = 0x6
n.l4 = Racket::L4::TCP.new
n.l4.src_port = 48484
n.l4.seq = 0xabcdef
n.l4.ack = 0xfedcba
n.l4.flag_ack = 1
n.l4.flag_psh = 1
n.l4.dst_port = 53
n.l4.window = 4445
n.l5 = Racket::L5::DNS.new
n.l5.tx_id = 1234
#n.l5.add_question(ARGV[2], 1, 1)
n.l4.add_option(2, "\xff\xee")
n.l4.fix!(n.l3.src_ip, n.l3.dst_ip, n.l5)
f = n.sendpacket
n.layers.compact.each do |l|
puts l.pretty
end
puts "Sent #{f}"