extractSubnet method

String extractSubnet(
  1. Pointer<IP_ADAPTER_ADDRESSES_LH> pIpAdapterAddress
)

Implementation

String extractSubnet(Pointer<IP_ADAPTER_ADDRESSES_LH> pIpAdapterAddress) {
  var pAddr = pIpAdapterAddress.ref.FirstUnicastAddress;

  while (pAddr.ref.Next != nullptr) {
    pAddr = pAddr.ref.Next;
  }

  final prefixLength = pAddr.ref.OnLinkPrefixLength;
  String subnetBin = '';
  for (int i = 0; i < prefixLength; i++) {
    subnetBin += '1';
  }
  for (int i = 0; i < 32 - prefixLength; i++) {
    subnetBin += '0';
  }

  final String subnet =
      '${int.parse(subnetBin.substring(0, 8), radix: 2)}.${int.parse(subnetBin.substring(8, 16), radix: 2)}.${int.parse(subnetBin.substring(16, 24), radix: 2)}.${int.parse(subnetBin.substring(24, 32), radix: 2)}';

  return subnet;
}