您的位置:首页 > 其它

MFC获取主机IP

2013-01-09 11:48 225 查看
通常获取ip地址有两种方法,第一种为借助socket用ioctl的方法读取本机的ip地址,但是由于该方法需要输入接口的名称,如,eth0,eth1,br0,eth0.97等等,这对于只需要简单的获取本机ip的需求来说还是过于复杂,本为通过gethostname函数和gethostbyname函数结合,获取本机ip地址则显得更为简单。它的基本原理就是从文件/etc/hosts中读取和你主机名字相匹配的ip地址。

示例代码如下:

#include <netdb.h>

#include <stdio.h>

void main(void)

{

char buff[20];

struct hostent * hostaddr;

struct in_addr addr;

gethostname(buff, sizeof(buff) ); //获取本机名

printf("hostname=%s\n",buff);

hostaddr=gethostbyname(buff); //获取本机ip地址

memcpy(&addr.s_addr,hostaddr->h_addr_list[0],sizeof(addr.s_addr));

strcpy(buff,inet_ntoa(addr));

buff[15]=0;

fprintf(stderr,"local ip addres=%s\n",buff);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: