gethostname(); gethostbyname(); gethostbyaddr() 的用法
2011-05-24 09:01
615 查看
#include <winsock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32")
int main()
{
WSADATA wSdata;
if (WSAStartup(MAKEWORD(2,2), &wSdata)!=0)
{
printf("WSAStartup() error %d", GetLastError());
WSACleanup();
system("pause");
return -1;
}
char hname[100]={0};
char buff[20]={0};
struct in_addr addr;
gethostname(hname, sizeof(hname)); //获得主机名
printf("hostname: %s/n", hname);
//
printf("*************/n");
hostent *p=gethostbyname(hname);
printf("p->h_name:%s/n", p->h_name);
printf("p->h_length:%d/n", p->h_length);
printf("p->h_addrtype:%d/n", p->h_addrtype);
printf("p->h_aliases[0]:%s/n", p->h_aliases[0]);
int i=0;
while(p->h_addr_list[i])
{
addr.S_un.S_addr = *(unsigned long *)p->h_addr_list[i];
printf("p->h_addr_list[%d]:%s/n",i , inet_ntoa(addr));
i++;
}
i=0;
while(p->h_aliases[i])
{
printf("p->h_aliases[%d]:%s/n",i ,p->h_aliases[i]);
i++;
}
printf("*************/n");
//gethostbyaddr()
in_addr addrss;
addrss.S_un.S_addr = inet_addr("127.0.0.1");
p = gethostbyaddr((char *)&addrss, sizeof(in_addr), AF_INET);
printf("p->h_name:%s/n", p->h_name);
printf("p->h_length:%d/n", p->h_length);
printf("p->h_addrtype:%d/n", p->h_addrtype);
printf("p->h_aliases[0]:%s/n", p->h_aliases[0]);
i=0;
while(p->h_addr_list[i])
{
addr.S_un.S_addr = *(unsigned long *)p->h_addr_list[i];
printf("p->h_addr_list[%d]:%s/n",i , inet_ntoa(addr));
i++;
}
//
printf("*************/n");
p=gethostbyname("www.baidu.com");
printf("p->h_name:%s/n", p->h_name);
printf("p->h_length:%d/n", p->h_length);
printf("p->h_addrtype:%d/n", p->h_addrtype);
printf("p->h_aliases[0]:%s/n", p->h_aliases[0]);
i=0;
while(p->h_addr_list[i])
{
addr.S_un.S_addr = *(unsigned long *)p->h_addr_list[i];
printf("p->h_addr_list[%d]:%s/n",i ,inet_ntoa(addr));
i++;
}
i=0;
while(p->h_aliases[i])
{
printf("p->h_aliases[%d]:%s/n",i ,p->h_aliases[i]);
i++;
}
system("pause");
WSACleanup();
return 0;
}
#include <stdio.h>
#pragma comment(lib, "ws2_32")
int main()
{
WSADATA wSdata;
if (WSAStartup(MAKEWORD(2,2), &wSdata)!=0)
{
printf("WSAStartup() error %d", GetLastError());
WSACleanup();
system("pause");
return -1;
}
char hname[100]={0};
char buff[20]={0};
struct in_addr addr;
gethostname(hname, sizeof(hname)); //获得主机名
printf("hostname: %s/n", hname);
//
printf("*************/n");
hostent *p=gethostbyname(hname);
printf("p->h_name:%s/n", p->h_name);
printf("p->h_length:%d/n", p->h_length);
printf("p->h_addrtype:%d/n", p->h_addrtype);
printf("p->h_aliases[0]:%s/n", p->h_aliases[0]);
int i=0;
while(p->h_addr_list[i])
{
addr.S_un.S_addr = *(unsigned long *)p->h_addr_list[i];
printf("p->h_addr_list[%d]:%s/n",i , inet_ntoa(addr));
i++;
}
i=0;
while(p->h_aliases[i])
{
printf("p->h_aliases[%d]:%s/n",i ,p->h_aliases[i]);
i++;
}
printf("*************/n");
//gethostbyaddr()
in_addr addrss;
addrss.S_un.S_addr = inet_addr("127.0.0.1");
p = gethostbyaddr((char *)&addrss, sizeof(in_addr), AF_INET);
printf("p->h_name:%s/n", p->h_name);
printf("p->h_length:%d/n", p->h_length);
printf("p->h_addrtype:%d/n", p->h_addrtype);
printf("p->h_aliases[0]:%s/n", p->h_aliases[0]);
i=0;
while(p->h_addr_list[i])
{
addr.S_un.S_addr = *(unsigned long *)p->h_addr_list[i];
printf("p->h_addr_list[%d]:%s/n",i , inet_ntoa(addr));
i++;
}
//
printf("*************/n");
p=gethostbyname("www.baidu.com");
printf("p->h_name:%s/n", p->h_name);
printf("p->h_length:%d/n", p->h_length);
printf("p->h_addrtype:%d/n", p->h_addrtype);
printf("p->h_aliases[0]:%s/n", p->h_aliases[0]);
i=0;
while(p->h_addr_list[i])
{
addr.S_un.S_addr = *(unsigned long *)p->h_addr_list[i];
printf("p->h_addr_list[%d]:%s/n",i ,inet_ntoa(addr));
i++;
}
i=0;
while(p->h_aliases[i])
{
printf("p->h_aliases[%d]:%s/n",i ,p->h_aliases[i]);
i++;
}
system("pause");
WSACleanup();
return 0;
}
相关文章推荐
- gethostname(); gethostbyname(); gethostbyaddr() 的用法
- getaddrinfo, getnameinfo(替代gethostbyname, gethostbyaddr), gethostname
- getaddrinfo, getnameinfo(替代gethostbyname, gethostbyaddr), gethostname
- getaddrinfo, getnameinfo(替代gethostbyname, gethostbyaddr), gethostname
- UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)
- UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)
- UNIX网络编程——名字与地址转换(gethostbyname,gethostbyaddr,getservbyname,getservbyport,getaddrinfo,getnameinfo函数)
- gethostname() gethostbyname() getprotobyname()用法!(VC++)
- 获取主机名、IP——gethostent(),gethostbyname(),gethostbyaddr()
- socket地址解析相关的几个函数inet_addr,inet_ntoa,gethostname,gethostbyname
- gethostbyname和gethostbyaddr的用法
- gethostbyname和gethostbyaddr的用法
- gethostname() gethostbyname() getprotobyname()用法
- document.getElementByName()的用法
- document.all与getElementById、getElementsByName、getElementsByTagName用法区别-getElementById
- document.all与getElementById、getElementsByName、getElementsByTagName用法区别-document.all第1/2页
- 【转】getElementById()、getElementsByName()、getElementsByTagName()的用法和获得表格中的记录数
- getElementById(), getElementsByName(), and getElementsByTagName() 和用法
- getElementById getElementsByName的用法与区别(转)
- gethostname()函数的用法