iOS OC 监听当前wifi网速

作者: 不会抽烟 | 来源:发表于2017-01-03 11:43 被阅读316次

思路:先获取到总的流量信息,然后用当前的总下行流量减去上一秒的下行流量得到网速!

具体实现在以下三个方法!

//获取下行速度

- (void)getByteRate {

  longlongintrate;

  longlongintcurrentBytes = [selfgetInterfaceBytes];

  if(self.lastBytes) {

  //用上当前的下行总流量减去上一秒的下行流量达到下行速录

  rate = currentBytes -self.lastBytes;

  }else{

  self.isFirstRate=NO;
}
  //保存上一秒的下行总流量
  self.lastBytes= [selfgetInterfaceBytes];

  //格式化一下
  NSString*rateStr = [selfformatNetWork:rate];

  NSLog(@"当前网速%@",rateStr);

self.playerControl.LoadingView.rateLabel.text = [NSStringstringWithFormat:@"%@",rateStr];
}
//获取数据流量详情

- (longlongint)getInterfaceBytes {

  structifaddrs*ifa_list =0, *ifa;

  if(getifaddrs(&ifa_list) == -1) {

   return 0;
  }

  uint32_tiBytes =0;//下行

  uint32_toBytes =0;//上行

  for(ifa = ifa_list; ifa; ifa = ifa->ifa_next) {

  if(AF_LINK!= ifa->ifa_addr->sa_family)

  continue;

  if(!(ifa->ifa_flags&IFF_UP) && !(ifa->ifa_flags&IFF_RUNNING))

  continue;

  if(ifa->ifa_data==0)

  continue;

  if(strncmp(ifa->ifa_name,"lo",2)) {

  structif_data*if_data = (structif_data*)ifa->ifa_data;

  iBytes += if_data->ifi_ibytes;

  oBytes += if_data->ifi_obytes;
  }
  }

  freeifaddrs(ifa_list);
  //返回下行的总流量
  returniBytes;
}
//格式化方法
- (NSString*)formatNetWork:(longlongint)rate {

  if(rate <1024) {

  return[NSStringstringWithFormat:@"%lldB/秒", rate];

  }elseif(rate >=1024&& rate <1024*1024) {

  return[NSStringstringWithFormat:@"%.1fKB/秒", (double)rate /1024];

  }elseif(rate >=1024*1024&& rate <1024*1024*1024){

  return[NSStringstringWithFormat:@"%.2fMB/秒", (double)rate / (1024*1024)];

  }else{
  return@"10Kb/秒";
};
}

相关文章

  • iOS OC 监听当前wifi网速

    思路:先获取到总的流量信息,然后用当前的总下行流量减去上一秒的下行流量得到网速! 具体实现在以下三个方法!

  • iOS OC 监听当前wifi网速

    思路:先获取到总的流量信息,然后用当前的总下行流量减去上一秒的下行流量得到网速! 具体实现在以下三个方法! //获...

  • 监听网络

    ios 注册通知、监听 iOS-OC-监听网络状态,有网时数据自动刷新 iOS实时监控网络状态的改变 简书 iOS...

  • iOS 网速监听工具

    来一个网络速度的监听工具,先上源码 .h文件 .m文件 好了,源码都在上面了,可以直接copy用。 用法 先导入头...

  • ios13获取wifi奇巧淫技

    ios获取wifi名称ios设备高版本获取wifi名称,目前略繁琐了这里写下步骤,造福同行 OC还是swift,获...

  • iOS 获取当前网速

    首先需要开启一个定时器,每隔1S获取一次当前网速 然后开始获取网速: 引入头文件: 相关代码: 这里我选择使用lo...

  • iOS中 wkwebView与js 简单交互

    iOS 代码 js调用OC 方法 1、添加方法 2、接收js调用oc 的代理方法 3、移除js的监听方法 oc调用...

  • iOS 有关WIFI讯息获取

    iOS 有关WIFI讯息获取 流量监测 获取wifi地址 获取wifi名称 从手机状态栏获取当前网络状态

  • Objective-c 获取当前Wi-Fi

    获取当前wifi: ios9.0之前#import NSArray *wifiArr = CFBridgingR...

  • ios 网络类型监听

    监听手机当前网络是什么类型 同时封装了一个UIAlertView作为提示用户当前网络是wifi还是几G 代码链接:...

网友评论

    本文标题:iOS OC 监听当前wifi网速

    本文链接:https://www.haomeiwen.com/subject/swngvttx.html