如何在C 語言中檢索本地電腦的IP 位址和子網路遮罩
確定本地電腦的IP 位址和子網路遮罩
確定本地電腦的IP 位址和子網路遮罩是位址各種網路操作的基本要求。在 C 中,有多種方法可以取得這些值。 Torial 的程式碼提供了檢索 IP 位址和子網路遮罩的有效解決方案。它利用 getifaddrs() 函數迭代與本機電腦關聯的所有網路介面位址。#include這是程式碼的稍微改進版本:#include#include #include #include 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; }
此更新的程式碼可確保正確識別並列印每個網路介面的 IP 位址和子網路遮罩。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3