Skip to content

Commit

Permalink
Add DnsClient.getReverseIpLookupQuestionFor(InetAddress)
Browse files Browse the repository at this point in the history
  • Loading branch information
Flowdalic committed Jul 28, 2020
1 parent ba0619d commit feb8ce7
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 7 deletions.
31 changes: 31 additions & 0 deletions minidns-client/src/main/java/org/minidns/DnsClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,14 @@
import org.minidns.MiniDnsException.ErrorResponseException;
import org.minidns.MiniDnsException.NoQueryPossibleException;
import org.minidns.dnsmessage.DnsMessage;
import org.minidns.dnsmessage.Question;
import org.minidns.dnsname.DnsName;
import org.minidns.dnsqueryresult.DnsQueryResult;
import org.minidns.dnsserverlookup.AndroidUsingExec;
import org.minidns.dnsserverlookup.AndroidUsingReflection;
import org.minidns.dnsserverlookup.DnsServerLookupMechanism;
import org.minidns.dnsserverlookup.UnixUsingEtcResolvConf;
import org.minidns.record.Record.TYPE;
import org.minidns.util.CollectionsUtil;
import org.minidns.util.InetAddressUtil;
import org.minidns.util.MultipleIoException;
Expand Down Expand Up @@ -441,4 +444,32 @@ public InetAddress getRandomHardcodedIpv4DnsServer() {
public InetAddress getRandomHarcodedIpv6DnsServer() {
return CollectionsUtil.getRandomFrom(STATIC_IPV6_DNS_SERVERS, insecureRandom);
}

private static Question getReverseIpLookupQuestionFor(DnsName dnsName) {
return new Question(dnsName, TYPE.PTR);
}

public static Question getReverseIpLookupQuestionFor(Inet4Address inet4Address) {
DnsName reversedIpAddress = InetAddressUtil.reverseIpAddressOf(inet4Address);
DnsName dnsName = DnsName.from(reversedIpAddress, DnsName.IN_ADDR_ARPA);
return getReverseIpLookupQuestionFor(dnsName);
}

public static Question getReverseIpLookupQuestionFor(Inet6Address inet6Address) {
DnsName reversedIpAddress = InetAddressUtil.reverseIpAddressOf(inet6Address);
DnsName dnsName = DnsName.from(reversedIpAddress, DnsName.IP6_ARPA);
return getReverseIpLookupQuestionFor(dnsName);
}

public static Question getReverseIpLookupQuestionFor(InetAddress inetAddress) {
if (inetAddress instanceof Inet4Address) {
return getReverseIpLookupQuestionFor((Inet4Address) inetAddress);
} else if (inetAddress instanceof Inet6Address) {
return getReverseIpLookupQuestionFor((Inet6Address) inetAddress);
} else {
throw new IllegalArgumentException("The provided inetAddress '" + inetAddress
+ "' is neither of type Inet4Address nor Inet6Address");
}
}

}
12 changes: 5 additions & 7 deletions minidns-hla/src/main/java/org/minidns/hla/ResolverApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.net.InetAddress;

import org.minidns.AbstractDnsClient;
import org.minidns.DnsClient;
import org.minidns.dnslabel.DnsLabel;
import org.minidns.dnsmessage.Question;
import org.minidns.dnsname.DnsName;
Expand All @@ -29,7 +30,6 @@
import org.minidns.record.PTR;
import org.minidns.record.SRV;
import org.minidns.record.Record.TYPE;
import org.minidns.util.InetAddressUtil;

/**
* The high-level MiniDNS resolving API. It is designed to be easy to use.
Expand Down Expand Up @@ -161,15 +161,13 @@ public ResolverResult<PTR> reverseLookup(InetAddress inetAddress) throws IOExcep
}

public ResolverResult<PTR> reverseLookup(Inet4Address inet4Address) throws IOException {
DnsName reversedIpAddress = InetAddressUtil.reverseIpAddressOf(inet4Address);
DnsName dnsName = DnsName.from(reversedIpAddress, DnsName.IN_ADDR_ARPA);
return resolve(dnsName, PTR.class);
Question question = DnsClient.getReverseIpLookupQuestionFor(inet4Address);
return resolve(question);
}

public ResolverResult<PTR> reverseLookup(Inet6Address inet6Address) throws IOException {
DnsName reversedIpAddress = InetAddressUtil.reverseIpAddressOf(inet6Address);
DnsName dnsName = DnsName.from(reversedIpAddress, DnsName.IP6_ARPA);
return resolve(dnsName, PTR.class);
Question question = DnsClient.getReverseIpLookupQuestionFor(inet6Address);
return resolve(question);
}

/**
Expand Down

0 comments on commit feb8ce7

Please sign in to comment.