gpt4 book ai didi

python - 如何刷新 socket.gethostbyname 响应的缓存?

转载 作者:太空狗 更新时间:2023-10-29 21:38:08 25 4
gpt4 key购买 nike

以前有人遇到过这个:

更新 DNS 记录后..我对“test.somedomain.com”进行了挖掘,我得到了 167.69.143.234,但是当我执行 socket.gethostbyname('test.somedomain.com') 时,我得到了 167.69.6.234。

我猜套接字仍在使用缓存...我该如何清除它?还是冲洗它?

我的代码很简单:

Linux 终端

dig test.somedomain.com

python :

import socket
socket.gethostbyname('test.somedomain.com')

它应该返回 167.69.143.234 地址,因为这是 DNS 中的更新地址。

最佳答案

Python 的 socket.gethostbyname 使用操作系统解析器并且没有用于清除其缓存的 API。缓存(可能是操作系统或操作系统或标准库组件使用的缓存 DNS 服务器)是 DNS 系统的基本元素,处理它的“正确方法”是等到记录的 TTL 值过期(操作系统应该从缓存中删除陈旧的值)。更新 DNS 时,您可能应该提前调整旧值的 TTL。

你也可以使用 Python DNS 实现,比如 DNSPython 而不是使用 socket.gethostbyname - 你应该完全控制解析器缓存(但不是解析器使用的 NS 缓存)然后.不过,它可能无法解决您的问题(我猜是使用现有代码)。

关于python - 如何刷新 socket.gethostbyname 响应的缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com