getWifiSubmask method

  1. @override
Future<String?> getWifiSubmask()
override

Obtains the subnet mask of the connected wifi network

Implementation

@override
Future<String?> getWifiSubmask() {
  return Future<String?>.value(query((pGuid, pAttributes) {
    final ulSize = calloc<ULONG>();
    Pointer<IP_ADAPTER_ADDRESSES_LH> pIpAdapterAddress = nullptr;
    try {
      GetAdaptersAddresses(AF_INET, 0, nullptr, nullptr, ulSize);
      pIpAdapterAddress = HeapAlloc(GetProcessHeap(), 0, ulSize.value).cast();
      GetAdaptersAddresses(AF_INET, 0, nullptr, pIpAdapterAddress, ulSize);
      final pAddr = getAdapterAddress(pGuid, pIpAdapterAddress);
      if (pAddr == null) return null;
      return extractSubnet(pAddr);
    } finally {
      free(ulSize);
      if (pIpAdapterAddress != nullptr) free(pIpAdapterAddress);
    }
  }));
}