happysky
驱动牛犊
驱动牛犊
  • 注册日期2003-05-22
  • 最后登录2004-02-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1651回复:11

怎样在核里可以取到本机的IP地址?

楼主#
更多 发布于:2003-06-10 11:04
谢谢!
Pharos
驱动牛犊
驱动牛犊
  • 注册日期2001-08-13
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-10 13:18
据我所知, 找不到。
没有我,你怎么办,你的泪水谁为你擦干; 谁为你打伞,安慰你心寒,失眠的夜你最怕孤单。
happysky
驱动牛犊
驱动牛犊
  • 注册日期2003-05-22
  • 最后登录2004-02-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-10 15:18
我觉得,肯定可以找到.ifconfig都可以找到.它通过ioctl得到的.
heqingbj
驱动小牛
驱动小牛
  • 注册日期2002-10-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-11 00:21
肯定可以的 在一个数据结构里 具体哪里偶现在手边没有书 记不起来了
foxding
驱动牛犊
驱动牛犊
  • 注册日期2003-06-11
  • 最后登录2004-01-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-11 17:34
ifconfig eth0不就可以看到了。
内核里指定,那就在/etc/rc中了
whj523
驱动牛犊
驱动牛犊
  • 注册日期2003-02-17
  • 最后登录2006-09-15
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-20 09:37
/etc/rc里找不到,有人告诉我在/etc/hosts里也找不到!到底在哪?继续!
happysky
驱动牛犊
驱动牛犊
  • 注册日期2003-05-22
  • 最后登录2004-02-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-20 11:22
我在核里通过设备接口表中可以找到.设备接口表里面有一个ifa_local字段,表示本机的ip地址.
Pharos
驱动牛犊
驱动牛犊
  • 注册日期2001-08-13
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-20 16:19
内核和本机的IP地址完全是两个不相干的东西,可以想一下,如果我安装了Linux的时候并没有安装内核,那地址在什么地方呢?我的网络还不是一样可以用?

内核在没有编译之前,完全是Source Code,它不可能知道你在安装Linux后对系统所做的配置,当然也就不可能知道你的IP地址。

如果哪位真的可以作到的话,麻烦你告诉我一下。



没有我,你怎么办,你的泪水谁为你擦干; 谁为你打伞,安慰你心寒,失眠的夜你最怕孤单。
Pharos
驱动牛犊
驱动牛犊
  • 注册日期2001-08-13
  • 最后登录2005-02-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-20 16:23
我想这个问题问的有毛病,大概这个问题的本意是说调用什么内核函数可以得到本机的IP地址?
没有我,你怎么办,你的泪水谁为你擦干; 谁为你打伞,安慰你心寒,失眠的夜你最怕孤单。
happysky
驱动牛犊
驱动牛犊
  • 注册日期2003-05-22
  • 最后登录2004-02-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-06-20 16:41
我问的问题不是通过调用ioctl去找ip地址.修改网络协议/net下的函数,这个协议是在内核里的实现的.
unix1998
驱动老牛
驱动老牛
  • 注册日期2002-05-08
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-21 11:23
ifconfig eth0
paopaoer
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2007-10-04
  • 粉丝0
  • 关注0
  • 积分630分
  • 威望64点
  • 贡献值0点
  • 好评度61点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-25 15:08
/*M*
// test by paopaoer
// gcc -c hostip.c -I/usr/src/linux/include
*M*/
#define MODULE
#define __KERNEL__

#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>

#include <linux/netdevice.h>
#include <linux/inetdevice.h>

char *in_ntoa(__u32 in)
{
static char buff[18];
char *p;
p=(char *)&in;
sprintf(buff, \"%d.%d.%d.%d\",
(p[0]&0xff),(p[1]&0xff),(p[2]&0xff), (p[3] &0xff));
return (buff);
}

static int
ShowIp()
{
struct socket *sock;
struct net_device *dev;
struct in_device *in_dev;
struct in_ifaddr *ifa=NULL;
int error = 0;

for( dev = dev_base; dev != NULL; dev = dev->next )
{
in_dev = __in_dev_get(dev);
ifa = in_dev->ifa_list;

printk(\"ifa->ifa_local = %s\\n\", in_ntoa(ifa->ifa_local) );
printk(\"ifa->ifa_address = %s\\n\", in_ntoa(ifa->ifa_address) );
}
return 0;
}

static int
init_module(void)
{
    ShowIp();
    
    return 0;    
}

static void
cleanup_module(void)
{
}

MODULE_LICENSE(\"GPL\");
paopaoer.3322.org
游客

返回顶部