Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1066494
  • 博文数量: 226
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 2504
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-21 14:12
文章分类

全部博文(226)

文章存档

2011年(1)

2010年(2)

2009年(68)

2008年(4)

2007年(27)

2006年(124)

我的朋友

分类: C/C++

2007-04-18 17:13:35

利用uname() and gethostbyname()两个函数,也可以用ioctl(),不多说,直接上代码,采用的第一种方式:
int getHostIpAndName()
{
    char hostname[200], **pptr;
    char ipaddr[50];
    struct utsname utname;
    struct hostent *hptr;
    uname(&utname);
    strcpy(hostname,utname.nodename);
    printf("hostname = %s\n",hostname);
    if ((hptr = gethostbyname(hostname)) == NULL)
    {
        exit(-1);
    }
    pptr = hptr->h_addr_list;
    while(*pptr != NULL) {
       inet_ntop(AF_INET,*pptr,ipaddr,30);
       printf("The IPv4 addr: %s\n", ipaddr);
       pptr++;
    }
}
阅读(1451) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~