クエリの最大長っていくつだろう? require 'socket' HOST = '8.8.8.8' # Google DNS Server sock = UDPSocket.open sock.bind('', 53) def proxy(msg) s = UDPSocket.open s.send(msg, 0, HOST, 53) msg = s.recvfrom(1024)[0] s.close return msg end loop do msg, (afam, port, host, ip) = sock.recvfrom(1024) puts "recv: #{msg.inspect}" sock.send(proxy(msg), 0, ip, port) end
![単純なDNSのプロキシを書いてみた - so what](https://cdn-ak-scissors.b.st-hatena.com/image/square/f61228a82677ca36a020db1cd30cd47ab7abe4ca/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fw%2Fwinebarrel%2F20110501%2F20110501213839.png)