Linux c语言获取本机 ip、子网掩码教程。

2023年 7月 22日 17.1k 0

在Linux系统下,可以使用C语言编写程序来获取本机的IP地址和子网掩码。以下是一个示例程序:

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

int main() {
    int sockfd;
    struct ifreq ifr;

    // 创建套接字
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    if (sockfd < 0) {
        perror("socket");
        exit(1);
    }

    // 获取接口名称
    strncpy(ifr.ifr_name, "eth0", IFNAMSIZ - 1);

    // 获取IP地址
    if (ioctl(sockfd, SIOCGIFADDR, &ifr) sin_addr), ip_address, INET_ADDRSTRLEN);
    printf("IP Address: %s\n", ip_address);

    // 获取子网掩码
    if (ioctl(sockfd, SIOCGIFNETMASK, &ifr) sin_addr), netmask, INET_ADDRSTRLEN);
    printf("Netmask: %s\n", netmask);

    // 关闭套接字
    close(sockfd);

    return 0;
}

该程序使用了Linux下的套接字和IO控制相关的系统调用和库函数来获取本机的IP地址和子网掩码。

需要注意的是,代码中的接口名称为"eth0",你可以根据实际情况修改为你的网络接口名称。在程序中,我们使用 ioctl函数进行控制操作,通过 SIOCGIFADDR获取IP地址,通过 SIOCGIFNETMASK获取子网掩码。

编译并运行该程序,你将会得到本机的IP地址和子网掩码信息。

香港五网CN2网络云服务器链接:www.tsyvps.com

蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论