如何用单命令实现指定域名IP并下载网页及关联资源(支持SNI)
合并域名IP映射与整站资源下载的解决方案
嘿,你完全不用分开折腾curl和wget,wget本身就支持这两个功能的组合,而且能完美适配仅支持SNI的服务器,一步到位解决问题。
直接用这个命令就行:
wget --resolve "www.example.com:443:123.123.123.123" --page-requisites https://www.example.com/
给你拆解下参数:
--resolve "www.example.com:443:123.123.123.123":和curl的--resolve逻辑一模一样,强制让wget把www.example.com的HTTPS(443端口)请求解析到指定IP,相当于临时给本次请求加了个专属hosts映射,不会影响系统全局设置。--page-requisites:就是你需要的整站资源下载功能,它会自动抓取页面依赖的所有资源——图片、CSS、字体、JavaScript这些都不会落下,保证离线打开页面时样式和功能都完整。
关于SNI的问题你也不用担心:
因为我们全程都是用原域名www.example.com发起HTTPS请求,只是强制解析到指定IP而已,wget会正常发送SNI扩展字段,完全符合目标服务器仅支持SNI的要求,不会出现SSL握手失败的情况。
内容的提问来源于stack exchange,提问作者duxsco
相关产品推荐
相关产品推荐

