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

2024-03-05

以前有人遇到过这个:

更新 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 中更新的地址。


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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何刷新 socket.gethostbyname 响应的缓存? 的相关文章

随机推荐

  • PHP 中 preg_replace() 的字符串的最大长度?

    我发现如果我尝试在很长的字符串上使用 preg replace PHP 会向我的浏览器返回一个空页面 而不显示错误消息 我能够在我的测试环境中重现这个错误 preg replace 可以处理的字符串的最大长度是多少 是否可以增加这个长度 对
  • Firestore 查询 - 一对多关系

    我将开发 Android 移动应用程序并使用 Firebase 作为后端 我是 NoSql Firestore 的新手 在我的应用程序中 用户有很多主题 一个主题有很多帖子 帖子有很多评论和一张图片 用户也有很多追随者 在这种情况下 我如何
  • C# 4.0:将动态转换为静态

    这是一个与我问的另一个问题相关的分支问题here https stackoverflow com questions 2783616 net 4 0 dynamic object used statically 我将其分开 因为这实际上是一
  • Visual Studio 第一次启动需要很长时间

    我在 Windows 7 64 位计算机 RAM 为 6 GB 上下载并安装了 Visual Studio 2013 Profession Trial 但是 当我第一次启动它时 它说 我们正在准备就绪 感谢您的耐心等待 它已经持续了大约一个
  • 无框架的 C++ GUI

    据我了解 没有办法让 C GUI 设计器将您的应用程序作为一个独立的可执行文件发布 所有 3rd 方框架都以 dll s 等形式添加依赖项 无论是 MFC Qt WTL wxWidgets GTK 这让我只剩下一种解决方案 使用 Win32
  • 为什么八进制序列 '\0101' 不等于十进制 65?

    考虑这个 C 程序 unsigned char c2 0101 printf c d n c2 c2 我相信输出应该是 A 65但实际输出是1 49 推理 字符常量中以 0 作为前缀 声明为八进制格式 而 101 的八进制值为 65 那么
  • 定时功能

    警告 这有点递归 我回答了这个问题 Python 如何获取列表中最长元素之前的所有元素 https stackoverflow com questions 8740018 pythonhow can i get all the elemen
  • YouTube 分析 API 行为空

    我知道这个问题以前已经被回答过 但我似乎有一个不同的问题 直到几天前 我对 YouTube 的查询从未出现过问题 然而现在 每次我查询任何视频上的数据时 实际视频数据行都会以单个空数组的形式返回 这是我的完整代码 coding utf 8
  • flutter sqlite 事务使用错误警告数据库已被锁定

    我正在开发一个使用 sqlite 和事务的移动应用程序 下面的代码是通过使用sqlite事务保存模型到多个数据库表来从用户那里获取订单信息 Future
  • 如何使用 npm install 和 webpack 来使用 normalize.css?

    我正在将 webpack 与 ReactJS 一起使用 并试图弄清楚如何在 npm 安装后使用 normalize css https necolas github io normalize css https necolas github
  • 如何使用注释将控制器定义为服务?

    这似乎是使用控制器作为服务的最快 最简单的方法 但我仍然缺少一个步骤 因为它不起作用 这是我的代码 控制器 服务 Test TestBundle Controller TestController php use Symfony Bundl
  • Psycopg2execute_values 以文本形式发送所有值

    我在 postgres 中有这张表 CREATE TABLE target a json b integer c text id integer CONSTRAINT id fkey FOREIGN KEY id REFERENCES pu
  • 在 drupal 7 中更改管理员密码

    我正在使用内置的 Drupal 7 用户模块 用户注册 忘记密码电子邮件等等 我忘记了我的管理员密码 我可以访问托管在 1and1 com 上的网站 也可以访问 mysql 是否可以通过 SQL 更改密码或电子邮件地址 以便我可以访问管理页
  • 更改状态时延迟加载 Angular 组件脚本

    这个问题已经占用了最后一天左右的时间 我一直在尝试让我的 AngularJS 应用程序延迟加载每个状态组件的脚本文件 我正在 Angular 中从事一个大型项目 并且index html文件已经变成了100多个
  • 将 Django-taggit 与 django-rest-framework 一起使用,我无法保存我的标签

    我试图弄清楚为什么当我提交表单时 我的标签没有保存在我的数据库中 django rest framework 和 Django taggit 也很新 我想我做错了什么 首先 在使用其余框架创建 API 之前 我使用通用视图 CreateVi
  • Python 中的 Bland-Altman 图

    是否有可能制作一个布兰德 奥特曼情节 http en wikipedia org wiki Bland E2 80 93Altman plot在Python中 我似乎找不到任何相关信息 此类情节的另一个名称是Tukey 均差图 Exampl
  • 有哪些 MATLAB 能做而 R 不能做的事情? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从表单数组的下拉框中获取选定的值

  • 在 Android 中使用 SVG 图像的最简单方法是什么?

    我找到了无数的库 以便在 Android 中使用 SVG 图像 并避免令人沮丧地创建不同的分辨率并为每个分辨率删除文件 当应用程序有很多图标或图像时 这会变得非常烦人 在 Android 中使用 SVG 图像的最简单易用的库的分步过程是什么
  • 如何刷新 socket.gethostbyname 响应的缓存?

    以前有人遇到过这个 更新 DNS 记录后 我对 test somedomain com 进行了挖掘 我得到了 167 69 143 234 但是当我执行 socket gethostbyname test somedomain com 时