下載速度

AzirLAn發表於2019-02-28
  • (long long) getInterfaceBytes { struct ifaddrs *ifa_list = 0, *ifa; if (getifaddrs(&ifa_list) == -1) { return 0; }

    uint32_t iBytes = 0; uint32_t oBytes = 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;
      
      /* Not a loopback device. */
      if (strncmp(ifa->ifa_name, "lo", 2))
      {
          struct if_data *if_data = (struct if_data *)ifa->ifa_data;
          
          iBytes += if_data->ifi_ibytes;
          oBytes += if_data->ifi_obytes;
      }
    複製程式碼

    } freeifaddrs(ifa_list);

    NSLog(@"\n[getInterfaceBytes-Total]%d,%d",iBytes,oBytes); return iBytes + oBytes; }

相關文章