Home > Article > Backend Development > How to Get a Local Computer's IP Address and Subnet Mask in C ?
How to Retrieve the IP Address and Subnet Mask of a Local Computer in C
Determining the local computer's IP address and subnet mask is a fundamental requirement for various network operations. In C , there are multiple approaches to obtain these values.
Torial's code provides an effective solution to retrieve both the IP address and subnet mask. It leverages the getifaddrs() function to iterate through all the network interface addresses associated with the local computer.
Here's a slightly improved version of the code:
#include <ifaddrs.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { struct ifaddrs *ifaddr; int err; if ((err = getifaddrs(&ifaddr)) != 0) { perror("getifaddrs"); exit(EXIT_FAILURE); } for (struct ifaddrs *ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) { if (!ifa->ifa_addr) continue; // Print the IP address if (ifa->ifa_addr->sa_family == AF_INET) { char ip[INET_ADDRSTRLEN]; inet_ntop(AF_INET, &((struct sockaddr_in *)ifa->ifa_addr)->sin_addr, ip, INET_ADDRSTRLEN); printf("IP: %s\n", ip); } // Print the subnet mask if (ifa->ifa_netmask->sa_family == AF_INET) { char mask[INET_ADDRSTRLEN]; inet_ntop(AF_INET, &((struct sockaddr_in *)ifa->ifa_netmask)->sin_addr, mask, INET_ADDRSTRLEN); printf("Subnet Mask: %s\n", mask); } } freeifaddrs(ifaddr); return 0; }
This updated code ensures both the IP address and subnet mask are correctly identified and printed for each network interface.
The above is the detailed content of How to Get a Local Computer's IP Address and Subnet Mask in C ?. For more information, please follow other related articles on the PHP Chinese website!