首页 > 系统相关 >《网络编程应用 —— Linux获取网卡ip》

《网络编程应用 —— Linux获取网卡ip》

时间:2022-11-03 15:56:19浏览次数:40  
标签:ifr ip 网卡 Linux include local sin

1.获取某个网卡的ip地址

#include <netinet/in.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <arpa/inet.h>

#include <string.h>

#define ETH_NAME "wlan0"

char* get_local_ip()
{                                                                                           
        int sock;
        struct sockaddr_in sin;
        struct ifreq ifr;
        sock = socket(AF_INET, SOCK_DGRAM, 0); 
        if (sock == -1) {
                perror("socket");
                return NULL;
        }   
        strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);
        ifr.ifr_name[IFNAMSIZ - 1] = 0;
        if (ioctl(sock, SIOCGIFADDR, &ifr) < 0) {
                perror("ioctl");
                return NULL;
        }   

        memcpy(&sin, &ifr.ifr_addr, sizeof(sin));
        return inet_ntoa(sin.sin_addr);
}

int main(void)
{
        char* local_ip = get_local_ip();
        printf("DEBUG:local_ip:%s\n", local_ip);

        return 0;
}

  此段代码可以获取Linux本地网卡的ip地址,wlan0可以修改成其他的网络设备。

标签:ifr,ip,网卡,Linux,include,local,sin
From: https://www.cnblogs.com/zhuangquan/p/16854734.html

相关文章

  • linux 常用命令
    1、打包、压缩、解压缩命令:tar1.1、打包yy文件不压缩:tar-cvfyy.taryy   c--打包、v--显示过程、f--文件名1.2、打包yy文件,并用gzip压缩:tar-czvfyy.tar.gzyy......
  • linux pm2启动node实例
     打包1.使用`npmrunbuild`命令对项目进行打包2.将步骤1中生成的两个文件+两个文件夹,压缩```.nuxtstaticnuxt.config.jspackage.json```3.上传到服务器指定好......
  • Linux命令行 (持续更行)
    1#文件操作2mkdirname#新建文件夹3rm-rfname#删除文件夹4cp-rname/.name_2/#复制文件夹下文件56#conda操作7condaactivateenv_name#......
  • OPNsense配置IPv6
    前面介绍了​​pfSense配置IPv6​​的方法,在本篇文章中,将介绍在OPNsense中配置IPv6的方法。两个防火墙配置IPv6的步骤基本相同,OPNsense中的默认设置包含了大部分的IPv6常用......
  • 从柯里化讲起,一网打尽 JavaScript 重要的高阶函数
    前情回顾我们在前篇​​《✨从历史讲起,JavaScript基因里写着函数式编程》​​讲到了JavaScript的函数式基因最早可追溯到1930年的lambda运算,这个时间比第一台计算......
  • Redhat/Oracle/Rocky Linux 部署vnc server
           Linux大部分是通过SSH远程命令行界面进行管理,有时候需要通过远程桌面环境部署、运行一些图形化应用程序,可以通过VNC方式进行。这里以RockyLinux8 部署......
  • IPv4如何向IPv6过渡?IPv6过渡转换技术有哪些?-中科三方
    IPv6是下一代互联网协议,相比IPv4其拥有更大的地址空间和更高的安全性,可以满足大数据、物联网等新型网络技术的需要。从IPv4向IPv6过渡,需要解决IPv4网络和IPv6网络之间的互......
  • 【亲测有效】有喜马拉雅VIP,XM文件转换MP3方法,批量下载VIP音频方法
    最近在听喜马拉雅小说,购买了VIP会员,但是每次打开喜马拉雅APP加载过程、查找过程什么的比较麻烦,想要下载到本地直接听。 电脑端下载的是XM加密文件,想寻求一种直接下载非......
  • RockyLinux9 源码安装LNMP
    本文参考来自https://www.ziruchu.com/art/401在基础上修改了部分路径和版本,感谢原作者的分享。准备工作安装软件dnfinstall-ywgetvimlrzsz关闭防火墙#关闭防......
  • javascript规范中美元符号$是什么?
    用途:一般用$获取页面中的某一个对象的id。参考:https://www.cnblogs.com/xutao1517588477/p/10582463.html>>拓展:$(function(){}),什么时候执行?https://blog.csdn.net/u0......