Нужно найти IP-адрес устройства HomeKit

Мне интересно, знает ли кто-нибудь хороший способ найти IP-адрес устройства HomeKit, будь то через аксессуар или его услуги. Я безрезультатно просматривал свойства HMAccessory и HMService, но, возможно, я что-то упускаю.

Я думал о возможном использовании bonjour, но мне не удалось найти много документации (или примеров) по его использованию для поиска устройств HomeKit, поэтому, надеюсь, есть лучший способ.

Какие-либо предложения? заранее спасибо


person BuddyD    schedule 30.11.2015    source источник
comment
Я сомневаюсь, что это возможно с HomeKit, но я знаю, что в зависимости от устройства, которое вы планируете использовать, вы можете извлечь IP-адрес, используя библиотеки IOS SDK устройств, если они у них есть. Например, с устройствами Philips я почти уверен, что вы можете это сделать, с устройствами TI, и я имею в виду низкоуровневые чип-платы, я точно знаю, что вы можете это сделать.   -  person Larry Pickles    schedule 30.11.2015
comment
Спасибо, Larcerax, на ваш взгляд, стоит ли встраивать IP-адрес устройства в характеристику на стороне устройства?   -  person BuddyD    schedule 30.11.2015
comment
Я бы не стал этого делать только потому, что, ПО МОЕМУ ОПЫТУ, IP-адреса могут меняться с помощью таких услуг, как Comcast или других интернет-провайдеров. Я заметил, что они обычно не используют статические IP-адреса для местоположений, и я бы не стал на это рассчитывать. Если пользователь вносит какие-либо дерьмовые изменения в свой Wi-Fi/маршрутизатор/интернет-сервис, у вас могут возникнуть проблемы. Я бы попытался записать MAC-адрес УСТРОЙСТВА, если вы можете его получить, или идентификатор оборудования, если он уникален. сохраните это, чтобы убедиться, что у вас есть правильное устройство на стороне сервера, зашифрованное, очевидно.   -  person Larry Pickles    schedule 30.11.2015


Ответы (1)


Выяснилось, что вы можете использовать NSNetServiceBrowser для запроса списка служб bonjour в сети, например так

var dBrowser = NSNetServiceBrowser()
dBrowser.delegate = self
dBrowser.searchForServicesOfType("_hap._tcp", inDomain: "")

и в методе разрешенного делегата NSNetServiceBrowser вы можете получить доступ к IP-адресу в свойстве адресов возвращаемой службы.

Ссылка для получения дополнительной информации: http://dev.eltima.com/post/99996366184/using-bonjour-in-swift

person BuddyD    schedule 30.11.2015