Когда я получаю IP-пакет с моим Android VpnService, я сначала читаю заголовки ( как здесь), затем я пытаюсь распечатать полученные данные следующим образом:
int lengthRemaining = packet.remaining();
if (lengthRemaining > 0) {
byte[] data = new byte[lengthRemaining];
packet.get(data, packet.arrayOffset(), lengthRemaining);
Log.d(TAG, "Packet-Data: " + new String(data, Charset.forName("UTF-8")));
}
В результате получается следующее:
Пакетные данные: ����5��(����������������������www�google�com������
Или другой пример с незашифрованной веб-страницы:
Пакет: версия IP = 4, длина заголовка = 20, общая длина = 60, IP-адрес назначения = xx.xx.xxx.xx, имя хоста = yyyyy.zzz, исходный IP-адрес = 10.1.10.1, протокол = 17, данные -Осталось=40
Пакетные данные: N���5��(@�F�������������������m�postimees�ee������
Я пробовал с несколькими разными типами кодирования строк, я не думаю, что это проблема.
Какой шаг я пропустил?