国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - IOS - 淺談關于如何檢測iOS14本地網絡權限的一些思路

淺談關于如何檢測iOS14本地網絡權限的一些思路

2021-06-04 16:05asml IOS

這篇文章主要介紹了淺談關于如何檢測iOS14本地網絡權限的一些思路,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前戲

蘋果iOS 14針對本地局域做了一些權限限制,詳情見鏈接:https://developer.apple.com/videos/play/wwdc2020/10110/

wwdc翻譯過來湊字數的

什么是本地網絡

這里的本地網絡其實就是我們常說的局域網,是將設備接入路由器以后形成的網絡,設備可以通過這張網絡互相通信,如我們的設備發現、設備綁定、局域網優先等功能都是使用的本地網絡。

從 iOS 13 開始,應用想要獲得當前連接到的 Wi-Fi 名稱,那就必須要獲得定位權限。因為通過識別 Wi-Fi 名稱, 應用就能輕松地在你和周圍的人之間建立大數據網絡。但是不給定位權限不代表應用就沒有辦法跟蹤你了,因為應用可以通過本地網絡里的設備進行跟蹤。

為什么需要向用戶申請權限?

和iOS 13獲取WiFi名稱需要通過定位權限類似,蘋果加強了對用戶隱私安全權限,這里也是類似的問題。在過去的 iOS 版本中,應用可以隨意掃描本地網絡中的設備,因此應用就可以很輕松地得到本地網絡里所有設備的名稱和 MAC 地址。MAC 地址是一種確認網絡設備位置的地址,每個網卡都有一個唯一的 MAC 地址,加上 MAC 地址也具有唯一性,設備廠商會按照一定的規律分配 MAC,所以不同的局域網都是獨一無二可以識別的。比方說,你從線下渠道買了個新相機,拍完照片利用相機自帶的 Wi-Fi 將照片導入到手機上。這時候帶有某個推廣模塊的應用對局域網發起了一次掃描,識別到了一個新的設備,推廣模塊會將相機的 MAC 地址上傳了云端,進行簡單的識別對比以后,很容易知道這個 MAC 地址屬于相機。這樣帶有推廣模塊的應用都會在畫像里給你加上「相機用戶」這樣的標簽,當你下次打開帶有同一個推廣模塊的購物應用時,你就會看到推薦了一堆和相機有關的東西。

那些應用需要使用本地網絡?

  • 利用本地網絡進行設備發現
  • 利用本地網絡進行數據傳輸
  • 網絡調試工具

影響范圍

主要影響無法使用Socket或者Bonjour做一些局域網的發現,數據傳輸。

對局域網應用如:智能家居類,局域網游戲,網絡測試工具等等。本人測試了下其實也沒有那么大,因為發現這個開關,App下次啟動后可能不會生效,暫時未定位原因。

怎么解決?

相信很多人都很奇怪為什么不整個權限申請或狀態查詢的接口,在翻了一些資料后發現,居然真的沒有。 鏈接:https://developer.apple.com/forums/tags/wwdc20-10110

很無奈!

大部分應用使用局域一般使用Socket或者Bonjour做一些局域的發現,數據傳輸。說在調用的時候會出現code:65 desc:no route to host。這是其實就是所謂的無本地網絡權限。但是我在測試時發現有時候即使是關掉本地網絡權限的開關,也能正常的使用UDP、TCP。簡直不敢信!難道iOS 14也會想iOS 13一開始出來一樣各種坑滿天飛?

這里的思路是

  • 通過接口獲取本機的IP地址
  • 使用(SimplePing)來ping手機的IP

整個流程的大概耗時在0.13-0.2秒之間,大部分在0.17秒左右。可能耗時還能接受。但是不知道某些路由器是否可以設置禁止ping。如果有那就炸裂了。 下面上簡單的代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
- (void)viewDidLoad {
  [super viewDidLoad];
  // Do any additional setup after loading the view.
  NSDictionary *router = [LDSRouterInfo getRouterInfo];
  pinger = [[SimplePing alloc] initWithHostName:router[@"ip"]];
  pinger.delegate = self;
  [self->pinger start];
  
}
- (void)simplePing:(SimplePing *)pinger didStartWithAddress:(NSData *)address {
  if (timer) {
    return;
  }
  timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_main_queue());
  dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 2 * NSEC_PER_SEC, 0 * NSEC_PER_SEC);
  dispatch_source_set_event_handler(timer, ^{
    [pinger sendPingWithData:nil];
  });
  dispatch_resume(timer);
}
 
- (void)simplePing:(SimplePing *)pinger didSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber {
  NSLog(@"可以使用局域網");
}
 
- (void)simplePing:(SimplePing *)pinger didFailToSendPacket:(NSData *)packet sequenceNumber:(uint16_t)sequenceNumber error:(NSError *)error {
  if (error.code == 65) {//no route to host
    NSLog(@"不可以使用局域網");
  }
}

友情提示

  • 調上面接口可以觸發首次啟動本地網絡權限的系統彈窗
  • 不知道某些路由器是否可以設置禁止ping
  • 整理流程在iPhone 6sp耗時130-200毫秒之間。平均值在160毫秒左右
  • 上面代碼未正式上線,本人也在測試中,請酌情使用。

demo

到此這篇關于淺談關于如何檢測iOS14本地網絡權限的一些思路的文章就介紹到這了,更多相關檢測iOS14本地網絡權限內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://juejin.im/post/6873016860514713608

延伸 · 閱讀

精彩推薦
  • IOSiOS中UILabel實現長按復制功能實例代碼

    iOS中UILabel實現長按復制功能實例代碼

    在iOS開發過程中,有時候會用到UILabel展示的內容,那么就設計到點擊UILabel復制它上面展示的內容的功能,也就是Label長按復制功能,下面這篇文章主要給大...

    devilx12792021-04-02
  • IOSiOS開發之視圖切換

    iOS開發之視圖切換

    在iOS開發中視圖的切換是很頻繁的,獨立的視圖應用在實際開發過程中并不常見,除非你的應用足夠簡單。在iOS開發中常用的視圖切換有三種,今天我們將...

    執著丶執念5282021-01-16
  • IOSiOS實現控制屏幕常亮不變暗的方法示例

    iOS實現控制屏幕常亮不變暗的方法示例

    最近在工作中遇到了要將iOS屏幕保持常亮的需求,所以下面這篇文章主要給大家介紹了關于利用iOS如何實現控制屏幕常亮不變暗的方法,文中給出了詳細的...

    隨風13332021-04-02
  • IOSiOS開發技巧之狀態欄字體顏色的設置方法

    iOS開發技巧之狀態欄字體顏色的設置方法

    有時候我們需要根據不同的背景修改狀態欄字體的顏色,下面這篇文章主要給大家介紹了關于iOS開發技巧之狀態欄字體顏色的設置方法,文中通過示例代碼...

    夢想家-mxj8922021-05-10
  • IOSiOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果

    這篇文章主要介紹了iOS自定義UICollectionViewFlowLayout實現圖片瀏覽效果的相關資料,需要的朋友可以參考下...

    jiangamh8882021-01-11
  • IOS詳解iOS中多個網絡請求的同步問題總結

    詳解iOS中多個網絡請求的同步問題總結

    這篇文章主要介紹了詳解iOS中多個網絡請求的同步問題總結,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    liang199111312021-03-15
  • IOSiOS中MD5加密算法的介紹和使用

    iOS中MD5加密算法的介紹和使用

    MD5加密是最常用的加密方法之一,是從一段字符串中通過相應特征生成一段32位的數字字母混合碼。對輸入信息生成唯一的128位散列值(32個字符)。這篇文...

    LYSNote5432021-02-04
  • IOSiOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)

    iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和

    這篇文章主要介紹了iOS中滑動控制屏幕亮度和系統音量(附加AVAudioPlayer基本用法和Masonry簡單使用)的相關資料,需要的朋友可以參考下...

    CodingFire13652021-02-26
主站蜘蛛池模板: 午夜精品福利电影 | 亚洲一区二区视频 | 在线观看一区二区视频 | 亚洲男人的天堂在线观看 | 欧美日韩一区二区三区在线电影 | 97在线观看 | 免费黄色小片 | 狠狠操狠狠干 | 五月婷婷精品 | 国产精品久久久久久久一区探花 | 亚洲一区中文字幕在线观看 | 性色国产 | 日本精品久久 | 91污在线观看 | 九九热在线视频观看这里只有精品 | 欧美日韩免费 | 亚洲精品在线观看网站 | 日韩欧美一级精品久久 | 一本大道av伊人久久综合 | 欧美在线观看一区 | 国产午夜精品一区二区三区嫩草 | 久久精品福利 | 亚洲精品免费视频 | 国产成人精品一区二区三区视频 | 成人天堂666 | 高清一区二区 | 一级色视频 | 综合色爱 | 日韩欧美视频 | av一二三区 | 成人激情在线视频 | 国产精品伦理 | 欧美精品在线播放 | 国产成人精品一区二区三区 | 亚洲男人一区 | 日日干,天天干 | 性激烈欧美三级在线播放狩猎 | 一区二区三区在线 | 黄色免费网站在线观看 | 日韩中文字幕在线 | 亚洲成人黄色 |