Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить список ip устройств, подключенных к своей 
:(
    Опции темы
allsolovey
Дата 21.12.2021, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Empty



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 3.1.2008

Репутация: нет
Всего: нет



всем привет!
Входные данные: Android 11 и выше. Как получить список устройств (IP), подключенных к моей WIFI точке доступа (поднята на этом же телефоне)?

Я пробовал этим методом

Код

br = new BufferedReader(new FileReader("/proc/net/arp"));


Он работает на Android 10 и ниже. 
Когда я запускаю на Android 11 - ошибка
java.io.FileNotFoundException: /proc/net/arp: open failed: EACCES (Permission denied)


С помощью гугла я нашел

On devices that run Android 10 or higher, apps cannot access /proc/net, which includes information about a device's network state. Apps that need access to this information, such as VPNs, should use the NetworkStatsManager or ConnectivityManager class.

Читал docs но так и не понял как это делать. это вообще сейчас возможно?

Это сообщение отредактировал(а) allsolovey - 22.12.2021, 10:26
PM MAIL   Вверх
Старовъръ
Дата 21.12.2021, 20:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: нет
Всего: 10



Только сам маршрутизатор может знать какие устройства к нему подключены. ARP - это протокол определения MAC адреса по IP адресу. Т.е. когда ты хочешь послать запрос на какой-то IP адрес в своей локальной сети, твоя ОС сначала должна определить на какой MAC слать пакеты. Для этого она шлет IP адрес твоей wifi точке, а та в ответ пришлет MAC устройства. 

В ARP таблице (по сути это кеш чтоб каждый раз не ходить в сеть) хранится список IP & MAC адресов твоей локальной сети с которыми ты недавно общался. Т.е. по сути чтоб в этой таблице оказались все устройства локальной сети тебе сначала нужно послать по запросу на каждый возможный IP адрес. Так конечно делать не надо и в итоге остановимся на том что это невозможно.
PM MAIL WWW   Вверх
allsolovey
Дата 22.12.2021, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Empty



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 3.1.2008

Репутация: нет
Всего: нет



Спасибо за ответ! Но моя точка WIFI находится на этом же телефоне. Я сам ее поднял, ко мне подключились еще 2 телефона. мне нужно знать их ip...

на ANDROID ниже 10 я получал таблицу ARP в android так:

Код

BufferedReader br = null;
    ArrayList<ClientScanResult> result = new ArrayList<ClientScanResult>();

    try {
        br = new BufferedReader(new FileReader("/proc/net/arp"));
        String line;
        while ((line = br.readLine()) != null) {
           System.out.println(line);
    }
    }Catch(Exception e){
    }finally {
        try {
            br.close();
        } catch (IOException e) {

        }
    }



PM MAIL   Вверх
allsolovey
Дата 22.12.2021, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Empty



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 3.1.2008

Репутация: нет
Всего: нет



Вот что еще нашел... Скорее всего сейчас это unreal

Текущий APIs в Android не позволяет приложениям получать доступ к кэшу ARP. Я вижу, что в Google issue tracker была даже создана задача, которая в настоящее время находится в следующем состоянии - 
https://issuetracker.google.com/issues/130103885

Статус: не исправится (неосуществимо ) Мы передали ваш вклад нашим внутренним командам, которые оценивают его для будущего выпуска. Мы закрываем этот вопрос на данный момент, и спасибо, что прислали нам свой отзыв!" 

Это сообщение отредактировал(а) allsolovey - 22.12.2021, 10:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.1096 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.