免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1750 | 回复: 2
打印 上一主题 下一主题

如何从网络设备名得到该设备的IP地址 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-25 15:27 |只看该作者 |倒序浏览
请教一下大家,内核里面有没有什么函数或者方法能够通过网络设备名如“eth0”得到该设备的IP地址?

**********************************************************************

我想可以通过dev_get_by_name得到设备结构体,然后如何通过这个设备结构体得到该设备的IP地址呢?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
2 [报告]
发表于 2009-07-25 16:50 |只看该作者
原帖由 ppb0320 于 2009-7-25 15:27 发表
请教一下大家,内核里面有没有什么函数或者方法能够通过网络设备名如“eth0”得到该设备的IP地址?

**********************************************************************

我想可以通过dev_get_by_na ...


在2.4内核中有一个全局变量dev_base,保存所有网络设备的相关信息,用struct net_device 结构体表示。这里面应该记录的有你想要的东西。

2.6内核中发生的变化,但是还是可以通过一定的方式得到内核中所有网络设备的链表,找到这个链表,那么每个网络设备的相关信息就好找了。

论坛徽章:
0
3 [报告]
发表于 2009-07-25 20:54 |只看该作者
u32 get_ip_by_eth_name(const char *name)
{
    u32 ret = 0;
    struct net_device *nd = NULL;

    if ( (nd = dev_get_by_name(name)) != NULL) {
        ret = inet_select_addr(nd, 0, 0);
        dev_put(nd); /* to release net_device */
    }
    return ret;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP