我有一个基本的 ruby 程序,它在端口(53)上侦听,接收数据然后发送到另一个位置(Google DNS 服务器 - 8.8.8.8)。回复不会回到原来的目的地,或者我没有正确转发它们。
这是代码。注意我正在使用 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
任何关于调试原因或提示的想法,将不胜感激。