I am messing around with DNS services in Java - I am specifically trying to lookup all google.com addresses and display them in an array, similar to running a lookup using nslookup:
nslookup -q=TXT _netblocks.google.com 8.8.8.8
I am using InetAddress
for this but keep on getting exception errors. Since the errors refer to 'Unknown Host' I don't think InetAddress
can read TXT records (if I use google.com it works, but that does't show the full IP Range). Below is my code:
InetAddress dnsresult[] = InetAddress.getAllByName("_netblocks.google.com");
for (int i=0; i<dnsresult.length; i++)
System.out.println (dnsresult[i]);
Would appreciate it if someone can point me in the right direction.
-JK
Here is an example that does what you are trying to do:
Attribute attr = new InitialDirContext().getAttributes("dns:_netblocks.google.com", new String[] {"TXT"}).get("TXT");
System.out.println("attr.get() = " + attr.get());
System.out.println("attr.getAll() = " + Collections.list(attr.getAll()));
If you want to use a custom dns server use "dns://1.1/_netblocks.google.com" instead.
You cannot lookup TXT or other DNS records InetAddress
class. InetAddress.getAllByName()
looks up for A, or AAAA records only.
Check DNS Java for your needs.
InetAddress
doesn't do this, but you can accomplish DNS TXT record lookups in Java via the JNDI DNS provider.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With