ポート(53)でリッスンし、データを受信してから別の場所(Google DNSサーバー-8.8.8.8)に送信する基本的なrubyプログラムがあります。応答が元の宛先に戻らないか、正しく転送されていません。
これがコードです。NB 私は EventMachine を使用しています
require 'rubygems'
require 'eventmachine'
module DNSServer
def post_init
puts 'connected'
end
def receive_data(data)
# Forward all data
conn = UDPSocket.new
conn.connect '8.8.8.8', 53
conn.send data, 0
conn.close
p data.unpack("H*")
end
def unbind
puts 'disconnected'
end
end
EM.run do
EM.open_datagram_socket '0.0.0.0', 53, DNSServer
end
デバッグする理由やヒントについての考えは、非常に高く評価されます。