Найти тему
The Codeby

Где хранятся IP адреса в Android

Доброго времени суток, в данной статье я опишу, где хранятся IP адреса, которые получало устройство на android. Так же этот способ будет наглядным при демонстрации какие порты задействуются при подключении.

Данный способ будет работать при соблюдении некоторых условий:

  • Телефон не перезагружался. При перезагрузке файл очищается, но если у вас есть возможность сделать физический дамп памяти телефона возможно поднять версии этого файла и получить адреса за бОльшее время.
  • Информация в файле сохраняется некоторое время, т.е. все IP адреса за все время вы не получите, но за пару часов шанс есть.

Нас интересует файл tcp, который находится по пути \proc\net\tcp. Этот файл доступен без root до версии Android Q и открывается как обычный текстовый файл.

В нем будет таблица вида:

Где, local address – IP адрес устройства. Более полное описание этой таблицы есть по ссылке или в на рисунке ниже:

Записан IP адрес устройства как «little-endian four-byte hexadecimal number», т.е. читать его нужно справа на лево и переводя из 16ричной системы(HEX) исчисления в 10ричную(DEC). Легче всего это разобрать на примере строки №0: 0100007F:0050, где :0050 это номер порта, а 0100007F это IP адрес. Читаем IP адрес: 7F(HEX)=127(DEC) 00(HEX)=0(DEC) 00(HEX)=0(DEC) 01(HEX)=0(DEC) и получаем 127.0.0.1.

Читаем IP адрес в строке №1: C0(HEX)=192(DEC) A8(HEX)=168(DEC) 08(HEX)=8(DEC) A2(HEX)=162(DEC) и получаем 192.168.8.162. Для облегчения задачи @Unison написал скрипт на python (прикреплен в конце статьи).

Под спойлерами есть пример с тем насколько долго сохраняется данная таблица.

Читать статью полностью: https://codeby.net/threads/gde-xranjatsja-ip-adresa-v-android.73103/