Я пытаюсь отобразить список всех устройств, подключенных к текущей сети Wi-Fi.Поиск IP-адресов с Android
Проблема, с которой я столкнулся, - это когда я пытаюсь использовать приведенный ниже код (используя DNS-поиск) на Java, я вижу несколько устройств. (И это хорошо); но он не работает на моем устройстве или эмуляторе Android.
Кто-нибудь знает, что я делаю неправильно? Я развиваюсь на Lolipop Phone, подключенном к WiFi. Единственный IP-адрес, который найден, является локальным хостом.
byte[] ip = localhost.getAddress();
for (int i = 0; i <= 254; i++)
{
ip[3] = (byte)i;
InetAddress address = InetAddress.getByAddress(ip);
if (!address.getHostAddress().equals(address.getHostName()))
{
// machine is known in a DNS lookup
AvailableHostList.add(address);
}
else
{
}
Следует иметь в виду, что на некоторых носителях Verizon, например, беспроводные смартфоны используют только IPv6 (более 18 квинтиллионов адресов на подсеть). Я не верю, что любой из перевозчиков позволит вам обнаружить другие устройства в вашей сети, поскольку это нарушение безопасности. Я не уверен, как они работают с Wi-Fi, но я сомневаюсь, что вы можете это сделать в сети оператора. –
Правильно, я пытаюсь сделать это на Wi-Fi (не в сетях операторов). Есть и другие приложения, которые это делают, поэтому я знаю, что это возможно. – John
ОК. Также помните, что подсети IPv4 могут иметь переменное количество адресов, а подсетей IPv6 имеют такое большое количество, что вам потребуется много тысяч лет, чтобы проверить их все грубой силой. Вы должны проверить размер подсети в IPv4, чтобы вы могли попробовать проверить, но я видел, как люди используют 10.0.0.0/8, что будет непрактичным, а коммерческий Wi-Fi может помешать вам проверять любые другие адреса в вашей подсети. –