《TCP/IP网络编程》第8章 笔记&代码&注释

本文深入探讨了DNS(域名系统)的基本概念,解释了其在互联网中如何将易记的域名转换为IP地址的工作原理。文章详细介绍了DNS服务器的作用,以及在Linux和Windows环境下通过编程接口获取域名对应的IP地址和反之亦然的方法。

DNS

DNS(Domain Name System 域名系统)

DNS是对IP地址和域名进行相互转换的系统,核心为DNS服务器。

(IP地址和域名地址:百度为例)

IP地址:119.75.217.109

域名地址:www.baidu.com

在浏览器上访问,进入的都是百度的搜索页面,但是他们访问的接入过程不同。

域名是分配给服务器端的虚拟地址,DNS要将这虚拟地址转化为实际地址(IP地址)。

ping www.baidu.com (可以获得百度的IP地址)

为什么要使用域名?

IP地址并非一直不变的!

在每次程序运行时根据域名来获得IP地址从而接入服务器,不再依赖IP地址。

利用域名获取IP地址&利用IP地址获取域名

//Linux
#include<netdb.h>
//根据域名获取IP地址
struct hostent * gethostbyname(const char* hostname);
//利用IP地址获取域名
struct hostent * gethostbyaddr(const char* addr,socklen_t len, int family);


//Windows
#include<winsock2.h>
struct hostent * gethostbyname(const char* name);
struct hostent * gethostbyaddr(const char* addr,int len, int type);

代码(Windows实现,只有gethostbyname()):

https://github.com/ChristmasError/TCP-IP-Network-programming/tree/master/%E7%AC%AC%E5%85%AB%E7%AB%A0%20%E5%9F%9F%E5%90%8D%E5%8F%8A%E7%BD%91%E7%BB%9C%E5%9C%B0%E5%9D%80

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值