У меня есть код, который позволяет мне определять MAC-адрес и IP-адрес соединения WiFi на iPhone, но я не могу выяснить, как получить Маску подсети и Адрес маршрутизатора для соединения. Кто-либо может указать на меня в правильном направлении здесь?
]Вы можете получить эту информацию, позвонив по телефону []getifaddrs[]. (Я использую эту функцию в одном из своих приложений, чтобы узнать IP-адрес iPhone.)[
] [struct ifaddrs *ifa = NULL, *ifList;
getifaddrs(&ifList); // should check for errors
for (ifa = ifList; ifa != NULL; ifa = ifa->ifa_next) {
ifa->ifa_addr // interface address
ifa->ifa_netmask // subnet mask
ifa->ifa_dstaddr // broadcast address, NOT router address
}
freeifaddrs(ifList); // clean up after yourself
]
[]Это даст вам маску подсети; для []адреса маршрутизатора смотрите этот вопрос[].[
] []Это все сетевые UNIX-функции старой школы, вам нужно будет выбрать, какой из интерфейсов является WiFi-соединением (другие функции, такие как интерфейс обратной связи, тоже будут там). Тогда вам, возможно, придется использовать функции типа inet_ntoa() в зависимости от того, в каком формате вы хотите читать IP-адреса. Это неплохо, просто утомительно и уродливо. Развлекайтесь![
]