Приветствую!
Узнаю адреса компьютеров в локальной сети при помощи следующего кода:
Ping ping = new Ping();
...
String currentAddress = address + i.ToString();
PingReply res = ping.Send(currentAddress, 100);
if (res.Status == IPStatus.Success)
{
...
}
Компьютеры таким образом определяются корректно. А вот смартфоны и планшеты не находятся. При эом res = IPStatus.TimeOut. Т.е неотличимо от случая, когда такого узла бы не было в сети.
Есть ли способ найти и их?
Нет.
Анализируется диапазон, например, 192.168.1.1 - 192.168.1.255. Смартфон имеет адрес 192.168.1.3 и не находится. Компы С 192.168.1.2 и 192.168.1.5 нормально обнаруживаются.
Хмм, теперь у себя запустил еще раз.
Предварительно открыв на телефоне приложение, использующее Интернет.
Теперь обнаруживается больше
Не обнаруживается девайс на Windows Phone.
Также, если телефон некоторое время полежит не лезя в интернет, то он также не обнаруживается. А в админке роутера его видно.
В общем, иногда смартфоны отображаются при поиске, иногда - нет. Видимо это связано с тем, что они в неактивном состоянии периодически подключаются к сети, а потом отключаются (батарею экономят?).