- 论坛徽章:
- 0
|
我是一新手希望各位前辈多多帮忙。
#include <stdio.h>
#include <unistd.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main(int argc, char **argv)
{
char acHostName[128] = {0};
struct hostent *pHe = NULL;
int i;
char **ppc = NULL;
char acAddrName[128] = {0};
gethostname(acHostName, sizeof(acHostName));
pHe = gethostbyname(acHostName);
printf("正式名字:%s\n", pHe->h_name);
ppc = pHe->h_addr_list;
for (i = 0; ppc != NULL; i++)
{
acAddrName[0] = 0;
inet_ntop(pHe->h_addrtype, ppc, acAddrName, sizeof(acAddrName ));
printf("%s\n", acAddrName );
}
return 0;
}
只取到了127.0.0.1 他的ip是192.168.0.253可这段代码在windows上却可以取到,这是为什么?
是不是linux上不是这么做,而是用其他的方法取得本机ip的?
[ 本帖最后由 xiaoligang 于 2007-1-4 13:33 编辑 ] |
|