java 伪造dns_JAVA程序内动态修改DNS解析

背景

在撸爬虫,但目标网站上了cloudflare。很奇怪,电浏览器能正常打开,但java程序里请求却需要验证码。刚开始以为是缺了某个请求头,但折腾了半天,没有找到cloudflare的验证逻辑。不过要是那么容易就找到,那人家也防不了ddos了。

曲线救国

既然cloudflare有防御,那就绕过CF直接请求原站。

想到了域名的历史解析,翻了一会后找到了疑似原站的IP。修改电脑的host文件,让域名直接指向原站ip,测试后发现这个ip确实是目标网站的原站。

问题

虽然解决了cloudflare的问题,但不太想每次部署一个新服务器就改一次服务器的host文件,而是希望程序能够自动解析域名成目标网站原服务器IP。

用java原生的方法也能做到,使用java.net.InetAddress这个类可以动态的设置DNS解析的值。

但还发现了个库,对InetAddress相关类进行了封装,还是阿里爸爸的,使用上会比原生类方便些。

maven

springboot项目,pom文件引入库的坐标:

com.alibaba

dns-cache-manipulator

1.5.1

使用上只需要修改程序里的DNS缓存即可:DnsCacheManipulator.setDnsCache("域名", "IP");

简单的测试了下,能够动态的修改DNS解析的ip值,并且在jvm销毁前能一直保持。

本文由 visionki 创作,采用 知识共享署名4.0 国际许可协议进行许可

本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名

最后编辑时间为: Oct 18, 2020 at 04:02 pm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值