Когда доступна сеть Personal Hotspot, вместо обычного значка блокировки в списке доступных сетей на iOS и OS X отображается значок цепочки.
Мой вопрос в том, как OS X различает эти сети? Указано ли в 802.11, как точки доступа по-разному передают свои SSID?
Я думаю, что этот вопрос должен быть размещен на сайте обмена стеками обратного проектирования . Вы запрашиваете детали реализации черного ящика...
На самом деле я немного покопался /System/Library/CoreServices/Menu Extras/AirPort.menu
и/System/Library/Frameworks/CoreWLAN.framework/
Существует частный метод CWNetwork
call isPersonalHotspot
, вроде:
char -[CWNetwork(Private) isPersonalHotspot](void * self, void * _cmd) {
eax = [*(self + 0x4) objectForKey:@"IOS_IE"];
eax = LOBYTE(eax != 0x0 ? 0x1 : 0x0) & 0xff;
return eax;
}
Кажется, просто проверяет некоторые идентификаторы. Я думаю SFRemoteHotspotDevice
и WiFiXPCEventProtocol
может иметь более низкоуровневые детали, но я не проверял.
Кстати, есть также свойство определять, работает ли сеть CarPlay.
@interface CWNetwork : NSObject <NSCopying, NSSecureCoding>
... //redacted
@property(readonly) BOOL isPersonalHotspot;
@property(readonly) BOOL isCarPlayNetwork;
... //redacted
Apple контролирует оборудование, драйверы и операционную систему, я думаю, они могут легко добавлять дополнительные метаданные при передаче сигнала WiFi, чтобы ваш Mac знал, добавлять ли значок цепочки или нет.
Если кто-нибудь выяснит, как именно Apple справилась с этой задачей, дайте мне знать. :)
Apple разговаривает с Apple, они знают свои собственные продукты и знают, является ли это устройством Apple или нет. У Apple может быть свой диапазон MAC-адресов, или они просто видят всю информацию об этом устройстве, например:
Если вы перейдете к «Об этом Mac», «Системный отчет», «Сеть», «Wi-Fi». Вы увидите следующую информацию об этой сети/устройстве.
Проверьте интерфейсы: тип карты, MAC-адрес или регион. Возможно, это все «идентификаторы Apple». Создавая точку доступа с вашим iPhone, Apple решила поделиться информацией с вашим Mac, чтобы показать, что это устройство Apple.
Значок цепочки показывает, что интернет-соединение подключается через другое устройство. Это не специально для личных точек доступа.
Кроме того, точки доступа на iOS также идентифицируются как 172.20.10.x.
Рускес
кора
Джош
бот47