Лучший способ узнать, подключено ли мое пользовательское устройство Ethernet к сети и какой у него IP для iOS? - PullRequest
1 голос
/ 28 февраля 2012

Идеи: 1. Пинговать всю мою подсеть (используя простой пинг и т. Д.) 2. Отправлять GET на все IP в моей подсети?(может быть слишком медленным), ожидая ответа 200 или 404.Thanx

Ответы [ 2 ]

0 голосов
/ 28 февраля 2012

Это чистый вопрос IP-сети. Что вы хотите сделать, это отправить широковещательное сообщение TCP / IP в сеть, и ваше пользовательское устройство ответит на него. См. Руководство по TCP / IP для некоторых основных деталей.

0 голосов
/ 28 февраля 2012

Можете ли вы запрограммировать ваше устройство Ethernet для ответа на запросы Bonjour (mDNS)? Это предпочтительный механизм обнаружения в экосистеме OSX / iOS. avahi - это демон mDNS с открытым исходным кодом, который вы можете запустить, если ваше устройство работает под управлением ОС UNIX. Вы также можете найти или написать встраиваемый сервер mDNS, который вы можете интегрировать в свой сервер, если у вас не установлена ​​ОС как таковая.

В противном случае, я бы, вероятно, пошел с пользовательским широковещательным UDP-пакетом, на который устройство ответит. (это в основном то, что делает Bonjour / mDNS, но менее общего). Чтобы отправить широковещательный пакет UDP, откройте сокет UDP (дейтаграмма) и отправьте пакет на широковещательный IP-адрес локальной подсети. Сделайте содержимое пакета соответствующим образом уникальным и заставьте ваше устройство отвечать, например, используя HMAC, чтобы избежать захвата любых других устройств или демонов, которые по совпадению отвечают на тот же порт.

...