当有可用的“个人热点”网络时,它将在iOS和OS X的可用网络列表中显示一个链链接图标,而不是通常的锁定图标。
我的问题是,OS X如何区分这些网络?802.11是否规定了热点如何以不同方式广播其SSID?
当有可用的“个人热点”网络时,它将在iOS和OS X的可用网络列表中显示一个链链接图标,而不是通常的锁定图标。
我的问题是,OS X如何区分这些网络?802.11是否规定了热点如何以不同方式广播其SSID?
Answers:
我认为这个问题应该发布在反向工程堆栈交换站点上。您正在询问有关黑匣子的实现细节...
事实上,我身边没有一个小挖/System/Library/CoreServices/Menu Extras/AirPort.menu
和/System/Library/Frameworks/CoreWLAN.framework/
有一种CWNetwork
称为的私有方法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知道是否添加链图标。
如果有人确切知道苹果是如何做到的,请告诉我。:)
链形图标显示互联网连接正在通过另一台设备桥接。它不是专门针对个人热点的。
苹果公司与苹果公司进行对话,他们知道自己的产品,并且知道何时不是苹果设备。苹果可能有自己的MAC地址范围,或者他们只是看到有关此设备的所有信息,即:
如果转到“关于本机”,请依次单击“系统报告”,“网络”,“ Wifi”。您将看到有关此网络/设备的以下详细信息。
检查以下接口:卡类型,MAC地址或区域设置。这些可能全部是“ Apple标识符”。当使用iPhone进行热点开发时,Apple决定与Mac共享信息以表明它是Apple设备。