Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1096642
  • 博文数量: 252
  • 博客积分: 4561
  • 博客等级: 上校
  • 技术积分: 2833
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-15 08:23
文章分类

全部博文(252)

文章存档

2015年(2)

2014年(1)

2013年(1)

2012年(16)

2011年(42)

2010年(67)

2009年(87)

2008年(36)

分类:

2009-12-01 10:10:27

#include <linux/module.h>
#include <linux/init.h>
#include <asm/atomic.h>
#include <linux/kthread.h>
#include <linux/delay.h>
#include <linux/netfilter.h>
#include <linux/skbuff.h>
#include <linux/netdevice.h>
#include <net/net_namespace.h>
#include <linux/list.h>
#include <linux/string.h>
#include <linux/inetdevice.h>

#define err(msg) printk(KERN_ALERT "%s\n", msg)

extern struct net init_net;

static int maininit(void)
{
        struct net_device *dev;
        struct in_device *indev;
        struct in_ifaddr *p;

        dev = dev_get_by_name(&init_net, "eth0");
        if (!dev) {
                err("dev_get_by_name");
                goto err;
        }

        indev = in_dev_get(dev);
        if (!indev) {
                err("in_dev_get");
                goto err1;
        }

        p = indev->ifa_list;
        while (p) {
                unsigned char *bp = (unsigned char *)&p->ifa_address;

                printk(KERN_INFO "%d.%d.%d.%d\n", *bp, *(bp+1), *(bp+2), *(bp+3));

                p = p->ifa_next;
        }

        in_dev_put(indev);
        dev_put(dev);

        return 0;
err1:
        dev_put(dev);
err:
        return -1;
}

static void mainexit(void)
{
}

module_init(maininit);
module_exit(mainexit);

MODULE_LICENSE("GPL");


阅读(827) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~