Доброго дня дорогие коллеги!
Хочу сделать сканер локальной сети.
т.е. получить имена всех устройств подключенных к той же сети что и моё.
Смотрел открытые проекты, там используется для пинга класс InetAddress.isReachable()
Но этот метод работает не для всех устройств, часть устройств видна, а часть нет (например windows и apple устройства)
Подскажите пожалуйста, как точно получить список устройств в локальной сети ?
Сканер сети
- petrovichtim
- Сообщения: 77
- Зарегистрирован: 11 фев 2014, 22:53
- Откуда: Москва
- Контактная информация:
Re: Сканер сети
похоже можно установить nmap в Android ( http://android-manual.org/level2/android-nmap )
ну и что то вроде такого можно будет использовать:
[syntax=java5]Process p = Runtime.getRuntime().exec("nmap -sn -oG ip.txt 192.168.0.1-255"); [/syntax]
p.s. я конечно это не пробывал, но без рута врятли возможно. и тогда остается только NDK, поскольку для данной задачи вам понадобится доступ на уровень ниже tcp\ip, на сколько мне известно из java это не возможно. Вообще там все просто, формируете пакет и шлете перебирая адреса и собирая ответы.
ну и что то вроде такого можно будет использовать:
[syntax=java5]Process p = Runtime.getRuntime().exec("nmap -sn -oG ip.txt 192.168.0.1-255"); [/syntax]
p.s. я конечно это не пробывал, но без рута врятли возможно. и тогда остается только NDK, поскольку для данной задачи вам понадобится доступ на уровень ниже tcp\ip, на сколько мне известно из java это не возможно. Вообще там все просто, формируете пакет и шлете перебирая адреса и собирая ответы.
- petrovichtim
- Сообщения: 77
- Зарегистрирован: 11 фев 2014, 22:53
- Откуда: Москва
- Контактная информация:
Re: Сканер сети
Без рута это точно можно, т.к. приложения такие в маркете есть и они рута не просят.altwin писал(а):похоже можно установить nmap в Android ( http://android-manual.org/level2/android-nmap )
ну и что то вроде такого можно будет использовать:
[syntax=java5]Process p = Runtime.getRuntime().exec("nmap -sn -oG ip.txt 192.168.0.1-255"); [/syntax]
p.s. я конечно это не пробывал, но без рута врятли возможно. и тогда остается только NDK, поскольку для данной задачи вам понадобится доступ на уровень ниже tcp\ip, на сколько мне известно из java это не возможно. Вообще там все просто, формируете пакет и шлете перебирая адреса и собирая ответы.