iOS-一个新的LAN网络扫描程序库已经诞生
它是如何开始的
2011年3月,当我为iOS开发我的第一个真实项目时,IT Buddy最初是一个IP计算器,现在被认为是真正的IT Buddy! 从第一天开始,我就考虑在IT Buddy中添加LAN扫描程序的情况,但是我的知识有限,没有任何我可以使用的开源项目。
五年后,仍然没有像样的LAN扫描程序库。 有几个可用的LAN扫描仪,但尚未投入生产。
没有适用于iOS的不错的LAN扫描程序库
很多人在StackOverflow上询问如何实现LAN扫描仪,所以我决定将所有部分放在一起(SimplePing,SimplePingHelper,LAN-Scan和MacFinder),并创建一个不错的开源库来通过iOS设备扫描网络。 。
体面的意思是:
- 不仅可以扫描所有子网/ 24
- 快速搜索而不会阻塞UI
- 使用默认的LAN扫描技术来ping和查询ARP表。
- 显示可用主机的IP和MAC地址。
- 根据MAC地址显示设备品牌
MMLanScan
因此,名称为MMLanScan,并且非常易于使用。
在此处下载并在您的项目中复制MMLanScan文件夹!
在您的控制器中导入MMLANScanner
#import“ MMLANScanner.h”
将MMLANScannerDelegate添加到您的控制器
@interface YourViewController()
声明MMLANScanner属性
@property(nonatomic,strong)MMLANScanner * lanScanner;
开始扫描
[self.lanScanner停止];
self.lanScanner = [[MMLANScanner alloc] initWithDelegate:self];
self.connectedDevices = [[NSMutableArray alloc] init];
[self.lanScanner启动];
实现委托方法以接收事件
-(void)lanScanDidFindNewAddressWithIP:(NSString *)ipAddress MACAddress:(NSString *)macAddress和Hostname:(NSString *)hostname;
-(void)lanScanDidFinishScanning;
-(void)lanScanProgressPinged:(NSInteger)pingedHosts from:(NSInteger)overallHosts;
-(void)lanScanDidFailedToScan;
怎么运行的
MMLanScan的工作方式类似于传统的网络扫描仪。 它首先对网络中的每个主机执行ping操作,以构建ARP表,然后尝试获取每个主机的MAC地址。 如果找到了MAC地址,则认为该主机存在于网络中。
技术资料
由于已修改为可与MMLanScan一起使用,因此请勿更新SimplePingHelper
去做
MMLanScan并不完美,还有改进的空间。
因此,如果有人想提供帮助:
- C̶o̶n̶v̶e̶r̶t̶̶t̶h̶e̶̶O̶U̶I̶̶t̶e̶x̶t̶̶i̶n̶̶a̶̶d̶i̶c̶t̶i̶o̶n̶a̶r̶̶̶a̶n̶̶
- 使它在后台线程中工作。 Apple的SimplePing在涉及GCD时存在问题(它基于C库,似乎它们的回调不适用于GCD)
- 从IP地址获取主机名方法不起作用
如果您喜欢这篇文章,请查看我们关于移动和技术的出版物Rock n Null!
您可以在此处找到该库和一个演示项目!