是否有 curl 命令为该命令执行内联主机文件替换?

Is there a curl command to do an inline hosts file replacement for that command?

我正在测试一个服务发现工具,我想在设置之前测试指向它的 dns 条目。

通常我会这样做:

  1. 将它们添加到 hosts 文件,
  2. 运行 curl 命令,然后
  3. 正在从 hosts 文件中删除它们。

我想到我应该能够与 curl 内联完成此操作。

我的问题是:是否有 curl 命令来为该命令执行内联主机文件替换?

编辑: 我相信这不是 this or this 的重复,因为我问的是一个恰好有相同答案的不同问题。

对于其中的一部分,您实际上想使用 dig 测试 dns。

这样做的好处是您可以指定 dns 服务器和您尝试解析的主机。

dig @127.0.0.1 -p 8600 web.service.consul

其中@127.0.0.1是dns服务器参数,web.service.consul是dns服务器配置的服务,consul。然后将生成的 IP 地址传递给您的 curl 命令。

要回答原始问题 - 您想要 pass a header 使用 curl

curl -H 'Host: static.example.com' http://dnsserveripaddress/

有好心人指出--resolve

但看起来我 actually needed

curl --dns-servers

请注意,这有 issues on OS X. There appears to be a workaround,但我无法让它工作。

甚至可能是您启动自己的 dns 服务器,然后将您的计算机指向该 dns 服务器。