使用curl
,我想通过特定的 IP 地址从 Web 服务器请求 URI,该地址不一定与主机名的转发 DNS 匹配。
例如,假设主机名 www.example.com 通常会解析为 192.0.2.222。我该如何从 192.0.2.111curl
请求 URI http://www.example.com
(并查看响应)?
注意:我想避免使用/etc/hosts
.
答案1
是的,这是可能的。的选项--resolve
可以满足curl
您的需求:
--resolve <host:port:address>
为特定主机和端口对提供自定义地址。使用此功能,您可以使curl 请求使用指定的地址,并防止使用通常解析的地址。将其视为命令行上提供的 /etc/hosts 替代方案。端口号应该是用于主机将使用的特定协议的编号。这意味着如果您想为同一主机但不同端口提供地址,则需要多个条目。
该选项可以多次使用以添加许多要解析的主机名。
(7.21.3 中添加)
例子
/foo
来自192.0.2.111
as 的请求www.example.com
。 (端口 80 上的请求由www.example.com
映射到。)192.0.2.111
curl
curl --resolve www.example.com:80:192.0.2.111 http://www.example.com/foo