百度搜索:蓝易云【Linux c语言获取本机 ip、子网掩码教程。】

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

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

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <string.h>

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) < 0) {
        perror("ioctl");
        close(sockfd);
        exit(1);
    }
    struct sockaddr_in* addr = (struct sockaddr_in*)&(ifr.ifr_addr);
    char ip_address[INET_ADDRSTRLEN];
    inet_ntop(AF_INET, &(addr->sin_addr), ip_address, INET_ADDRSTRLEN);
    printf("IP Address: %s\n", ip_address);

    // 获取子网掩码
    if (ioctl(sockfd, SIOCGIFNETMASK, &ifr) < 0) {
        perror("ioctl");
        close(sockfd);
        exit(1);
    }
    addr = (struct sockaddr_in*)&(ifr.ifr_netmask);
    char netmask[INET_ADDRSTRLEN];
    inet_ntop(AF_INET, &(addr->sin_addr), netmask, INET_ADDRSTRLEN);
    printf("Netmask: %s\n", netmask);

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

    return 0;
}

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

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

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

目录
相关文章
|
3天前
|
存储 机器学习/深度学习 编译器
C语言基础简单教程
C语言基础简单教程
|
4天前
|
IDE 编译器 开发工具
C语言教程:如何进行环境搭建
C语言教程:如何进行环境搭建
|
4天前
|
搜索推荐 编译器 C语言
C语言的简单教程
摘要: 了解C语言中的注释,包括//单行和/*多行*/注释,注意不要嵌套。使用快捷键Ctrl + K, Ctrl + C/U处理注释。C语言的关键字如&#39;int&#39;和&#39;return&#39;有特定含义,通常小写且高亮显示。常量是不可变的,分为不同类型。练习涉及识别不同类型的常量,如整型、实型和字符型。使用printf通过占位符输出常量,例如`printf(&quot;%d&quot;, 10)`。作业包括根据占位符输出个性化信息,如学校名字、高考分数和女朋友的详细信息,并掌握在不同情况下使用\n进行换行。
|
22天前
|
Unix Linux 开发工具
【Linux】编辑、查看和搜索文件
【Linux】编辑、查看和搜索文件
|
1月前
|
存储 算法 程序员
零基础C语言“函数”教程,有手就行
零基础C语言“函数”教程,有手就行
|
1月前
|
C语言
【用C语言轻松实现】- 扫雷【超详细教程】
【用C语言轻松实现】- 扫雷【超详细教程】
|
1月前
|
C语言
【用C语言轻松搞定】三子棋(超详细教程)
【用C语言轻松搞定】三子棋(超详细教程)
|
1月前
|
程序员 PHP Python
2024年Python最全Python基础教程:keys()、values()和 items()方法,百度面试题php
2024年Python最全Python基础教程:keys()、values()和 items()方法,百度面试题php
2024年Python最全Python基础教程:keys()、values()和 items()方法,百度面试题php
|
21天前
|
Ubuntu Linux
深入解析 Linux 命令 `bzgrep`:快速搜索 Bzip2 压缩文件
`bzgrep`是Linux下用于在Bzip2压缩文件中搜索模式的工具,结合了`grep`和Bzip2的功能,允许用户无需解压即可搜索。安装`bzgrep`需通过包管理器如`apt-get`或`yum`。基本用法与`grep`类似,如`bzgrep &quot;example&quot; filename.txt.bz2`。可搭配`-i`, `-l`, `-n`等选项使用,并可通过`find`和`xargs`进行递归搜索。虽然对大文件可能较慢,但比完全解压更快。对于处理压缩文本数据的用户,`bzgrep`是必备工具。
|
22天前
|
C语言
C语言结构体教程:从入门到实践(保姆式教学)
C语言结构体教程:从入门到实践(保姆式教学)
18 0