DNS Client 的一点小知识

因为DNS是C/S结构,大家又熟悉DNS server这个概念,所以很容易产生一个误解,认为“DNS Client服务”就是DNS的客户端。误以为如果禁用“DNS Client服务”客户端就不能解析域名了。

产生误解的原因,还在于微软的误导。在Windows的服务管理中,微软声称“DNS Client服务”是“为此计算机解析和缓冲域名系统 (DNS) 名称。如果此服务被停止,计算机将不能解析 DNS 名称并定位 Active Directory 域控制器。如果此服务被禁用,任何明确依赖它的服务将不能启动。”微软这些话是很不负责任的话。

其实,“DNS Client服务”只是客户端对DNS解析内容的缓存服务,禁用“DNS Client服务”并不影响DNS解析,只是客户端不对DNS解析内容进行缓存。命令ipconfig/displaydns 显示本机DNS缓存,但在禁用“DNS Client服务”时失效。

这个服务关闭与否影响并不大,从安全性上考虑,开启它可能泄漏你的缓存内容,确定你曾经访问过的网站。从速度上考虑,关闭它可能会降低反应速度,但一般影响不大。

客户端在遇到一个域名需要解析时,查询顺序为:

1、DNS缓存(如果DNS Client服务启用的话);

2、本机hosts文件;

3、主要DNS server;

4、辅助DNS server。


在修改了本机的hosts文件后,有时需重起一下浏览器才起作用,可能是DNS缓存的原因。

Q:有没有办法可以用命令行清空dns的cache,直接使修改过的hosts文件生效,而不需要重起浏览器?
A:使用命令ipconfig /flushdns 清除本机DNS缓存。

执行ipconfig /flushdns 后若hosts文件仍不起作用,可能需要等待。

转自:http://hi.baidu.com/fairex/blog/item/e4a8c416a55ad910962b4331.html/cmtid/05d29301ac3ac0d9267fb5eb

转载于:https://www.cnblogs.com/wz327/archive/2011/05/09/2041341.html

DNS客户端是一种网络应用程序或库,用于向DNS服务器发送查询请求并接收响应。它负责将域名解析为相应的IP地址,以便我们能够访问互联网。DNS客户端通常在操作系统或应用程序中使用,以便将用户提供的域名转换为IP地址。 在Linux系统上,可以使用各种编程语言(如Python、C、C++等)来实现DNS客户端。下面是一个基于Linux的Python示例,演示了如何使用socket库发送DNS查询请求并解析响应: ```python import socket def dns_query(domain): # 创建UDP套接字 client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 设置DNS服务器的地址和端口 dns_server = ('8.8.8.8', 53) # 构造DNS查询报文 query = bytearray() query += b'\x00\x01' # 会话标识和标志位 query += b'\x00\x01' # 问题数 query += b'\x00\x00' # 回答数 query += b'\x00\x00' # 授权资源记录数 query += b'\x00\x00' # 额外资源记录数 query += bytes([len(part) for part in domain.split('.')]) # 域名长度 query += domain.encode() # 域名 query += b'\x00' # 域名结束符 query += b'\x00\x01' # 查询类型(A记录) query += b'\x00\x01' # 查询类(IN类) # 发送DNS查询请求 client_socket.sendto(query, dns_server) # 接收DNS响应 response, _ = client_socket.recvfrom(1024) # 解析DNS响应 ip_address = socket.inet_ntoa(response[-4:]) # 提取IP地址 return ip_address # 示例:查询百度的IP地址 domain = 'www.baidu.com' ip_address = dns_query(domain) print(f"The IP address of {domain} is {ip_address}") ``` 该示例使用UDP套接字与DNS服务器通信,并构造了一个简单的DNS查询报文。然后,它发送查询请求并接收响应。最后,它从响应中提取IP地址并打印出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值