我是靠谱客的博主 紧张汽车,这篇文章主要介绍Winsocket编程之域名解析Winsocket编程之域名解析,现在分享给大家,希望可以做个参考。

文章目录

  • Winsocket编程之域名解析
    • 0.前置知识
      • a.hostnet
      • b.gethostname()
      • c.gethostbyname()
    • 1.实现流程
    • 2.代码

Winsocket编程之域名解析

0.前置知识

a.hostnet

hostent是host entry的缩写,该结构记录主机的信息,包括主机名、别名、地址类型、地址长度和地址列表。之所以主机的地址是一个列表的形式,原因是当一个主机有多个网络接口时,自然有多个地址。

在这里插入图片描述


b.gethostname()

在这里插入图片描述

在这里插入图片描述

c.gethostbyname()

在这里插入图片描述

1.实现流程

  • 启动WSA(WinSocket API)
  • 用gethostname 获取本地主机名,然后用gethostbyname() 获取本地ip.
  • 从控制台输入一个域名用gethostbyname() 得到hostent的结构体指针,然后获取对应的ip。

2.代码

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#define _WINSOCK_DEPRECATED_NO_WARNINGS #include "WinSock2.h" #include "iostream" #pragma comment(lib,"ws2_32.lib") //链接WinSock导入库 using namespace std; int main(int argc, char** argv) { WSADATA wsaData; WORD wVersionRequested = MAKEWORD(2, 2); //调用2.2版本 if (WSAStartup(wVersionRequested, &wsaData) != 0) { //加载WinSock动态链接库 cout << "加载WinSock DLL失败!n"; return 0; } struct hostent* hptr; char** pptr; char hostname[256]; //获取主机名字 if (gethostname(hostname, sizeof(hostname))) { cout << "获取主机名字失败!n"; WSACleanup(); return 0; } cout << "hostname:" << hostname << endl; //获取本机IP地址 if ((hptr = gethostbyname(hostname)) == NULL) { cout << "通过主机名获取本机IP地址失败!n" << endl; WSACleanup(); return 0; } pptr = hptr->h_addr_list; cout << "host_ip:" << endl; while (*pptr != NULL) { //inet_ntoa:将一个包含在in_addr结构变量中的长整型IP地址转换为点分十进制形式 cout << inet_ntoa(*(struct in_addr*)(*pptr)) << endl; pptr++; } //解析域名 cout << "输入要解析的域名:" << endl; cin >> hostname; if ((hptr = gethostbyname(hostname)) == NULL) { cout << "域名解析失败!n" << endl; WSACleanup(); return 0; } //输出远程机器IP地址 pptr = hptr->h_addr_list; cout << "ip:" << endl; while (*pptr != NULL) { cout << inet_ntoa(*(struct in_addr*)(*pptr)) << endl; pptr++; } WSACleanup(); return 0; }

最后

以上就是紧张汽车最近收集整理的关于Winsocket编程之域名解析Winsocket编程之域名解析的全部内容,更多相关Winsocket编程之域名解析Winsocket编程之域名解析内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部