Home > Backend Development > C++ > How to Get a Local Computer's IP Address and Subnet Mask in C ?

How to Get a Local Computer's IP Address and Subnet Mask in C ?

Barbara Streisand
Release: 2024-11-11 15:54:03
Original
741 people have browsed it

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;
}
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template