void printNetworkDetails(network_t *n) { char subnetMask[STRLEN] = ""; char hostAddress[STRLEN] = ""; char networkAddress[STRLEN] = ""; char broadcastAddress[STRLEN] = ""; char wildcardMask[STRLEN] = ""; char lastUsable[STRLEN] = ""; char firstUsable[STRLEN] = ""; char secondUsable[STRLEN] = ""; char thirdUsable[STRLEN] = ""; int networkSize; int bitMask; getIPAddress(n, hostAddress, STRLEN); getSubnetMask(n, subnetMask, STRLEN); getNetworkAddress(n, networkAddress, STRLEN); getBroadcastAddress(n, broadcastAddress, STRLEN); getWildcardMask(n, wildcardMask, STRLEN); getLastUsable(n, lastUsable, STRLEN); getFirstUsable(n, firstUsable, STRLEN); getSecondUsable(n, secondUsable, STRLEN); getThirdUsable(n, thirdUsable, STRLEN); networkSize = getNetworkSize(n); bitMask = getBitmask(n); printf("\n"); printf("Host address - %s\n", hostAddress); printf("Network Address - %s (%s/%d)\n", networkAddress, networkAddress, bitMask); printf("Subnet Mask - %s\n", subnetMask); printf("Broadcast Address - %s\n", broadcastAddress); printf("Wildcard Address - %s\n", wildcardMask); printf("Network Prefix (CIDR) - /%d\n", bitMask); printf("Network Range - %s - %s (%d Addresses)\n", networkAddress, broadcastAddress, networkSize+2); printf("Usable Range - %s - %s (%d Usable Hosts)\n", firstUsable, lastUsable,networkSize); printf("\n"); printf("A IP - %s\n", firstUsable); printf("B IP - %s\n", secondUsable); printf("C IP - %s\n", thirdUsable); printf("GW IP - %s\n", lastUsable); printf("\n"); // Provisioning Assistance: }
static struct ifaddrs *getWiiUInterfaceAddressData(void) { struct ifaddrs *result = buildEmptyIfa(); if(result != NULL) { if(getAssignedAddress((struct sockaddr_in *)result->ifa_addr) < 0 || getAssignedSubnet((struct sockaddr_in *)result->ifa_netmask) < 0 || getBroadcastAddress((struct sockaddr_in *)result->ifa_dstaddr, (struct sockaddr_in *)result->ifa_addr, (struct sockaddr_in *)result->ifa_netmask) < 0) { goto error; } } return result; error: freeifaddrs(result); return NULL; }
bool Address::isBroadcast() const { return *this == getBroadcastAddress(); }