Как извлечь имя хоста из пакета tcp / udp? - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть пакет tcp.Из заголовка tcp я могу получить IP-адрес назначения.Моя цель состоит в том, чтобы найти имя хоста для назначения.

Я попытался выполнить обратный поиск DNS, используя приведенный ниже код.

try {
    hostname = InetAddress.getByName(myIp).getHostName();
    Log.w("Host for ", myIp + " is " + hostname) ;
    }catch (UnknownHostException e){
        Log.w("Unknown Host for ", myIp);
}

Приведенный выше код дает вывод в виде:

W / Host для: 172.217.3.33 is iad23s57-in-f1.1e100.net

W / Host для: 216.58.217.142 is iad23s43-in-f14.1e100.net.,.

Я хочу использовать имя хоста в качестве имени сайта.пример.youtube.com, stackoverflow.com и т. д.

Я пытался использовать для этого библиотеку MiniDNS.

ResolverResult<A> result = DnssecResolverApi.INSTANCE.resolve(hostname, A.class);

if (!result.wasSuccessful()) {
    DnsMessage.RESPONSE_CODE responseCode = result.getResponseCode();
    // Perform error handling.
    Log.d(TAG, “ Result Not successful");
    return;
}

if (!result.isAuthenticData()) {
    // Response was not secured with DNSSEC.
    Log.d(TAG, ”Result Not authentic");
    return;
}


Set<A> answers = result.getAnswers();
for (A a : answers) {
    InetAddress inetAddress = a.getInetAddress();
    // Do someting with the InetAddress, e.g. connect to.
    Log.d(TAG, InetAddress.toString());
}

Приведенный выше код выдает следующую ошибку:

Доступ запрещен при поиске свойства "net.dns1"

Я могу проанализировать пакет tcp/udp, чтобы получить tcp/udp header и получить адрес назначения.Есть ли способ получить имя хоста из пакета, кроме IP-адреса назначения?

...