I faced what might have been the same problem today, after upgrading a DNS server from Debian Wheezy to Debian Jessie. Suddenly I was getting:
/usr/lib/ruby/2.1.0/resolv.rb:431:in `getname': DNS result has no information for 192.168.12.100 (Resolv::ResolvError)
I happened to notice unfamiliar capitals in IN-ADDR.ARPA here:
$ host 192.168.12.100
100.12.168.192.IN-ADDR.ARPA domain name pointer asdf.example.com.
$
With older DNS servers, it was:
$ host 192.168.12.100
100.12.168.192.in-addr.arpa domain name pointer asdf.example.com.
$
Even with the new server, the external IP example still had lower case:
$ host 203.208.60.1
1.60.208.203.in-addr.arpa domain name pointer crawl-203-208-60-1.googlebot.com.
$
I noticed that the test case worked on Ruby 2.3. The resolv.rb library is Pure Ruby and the 2.3 version now only runs on Ruby 2.1 but passes the test case. That made it straightforward to track down the active ingredient to:
https://git.ruby-lang.org/ruby.git/commit/lib/resolv.rb?id=69a7bb31f917bd68d78460216aa2ef274428790e
... which was perhaps the crux of the fix for:
https://bugs.ruby-lang.org/issues/10550 (Resolv::DNS.getaddresses returns no IPs when nameserver returns in differing case than query)
I fixed it by monkey patching, in such a way that it would fix Ruby 1.8.7, 1.9.3 and 2.1.0 while leaving 2.3.3, which was already working, untouched:
require "resolv"
class Resolv
class DNS
class Name
if Resolv::DNS::Name.new("in-addr.arpa".split(".")) != Resolv::DNS::Name.new("IN-ADDR.ARPA".split("."))
def ==(other)
return false unless @absolute == other.absolute?
return @labels.join('.').casecmp(other.to_a.join('.')).zero?
end
end
end
end
end