动态修改hosts

编程入门 行业动态 更新时间:2024-10-28 00:19:11

<a href=https://www.elefans.com/category/jswz/34/1771299.html style=动态修改hosts"/>

动态修改hosts

前言

因工作需要频繁变更hosts, 故须自己实现一个动态管理器, 市面上其实已经有了类似的软件,比如switchhosts!但因为不好集成其他功能(如远程连接KVM),所以还是决定自己开发一套。

原理

使用之前强烈建议先阅读本文了解原理:
Java实现实时生效hosts文件修改

准备

使用java实现的话, alibaba实际上已经开源了一个叫java-dns-cache-manipulator的项目, 使用起来非常简单, 但是未使用java17进行测试过。
由于与网络相关, 我们同时引入okhttpjava-dns-cache-manipulator的最新版本:

<dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>RELEASE</version>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>dns-cache-manipulator</artifactId><version>RELEASE</version>
</dependency>

需求

我有一个NAS,可以通过http://192.168.31.6:5000进行访问, 我希望动态修改域名nas.y4d映射到192.168.31.6

使用

dns-cache.properties

nas.y4d=192.168.31.66

DnsCache.kt

fun main() {DnsCacheManipulator.loadDnsCacheConfig()val okHttpClient = OkHttpClient()val request =Request.Builder().get().header("Accept-Language", "zh-CN,zh;q=0.9").url(":5000").build()val response = okHttpClient.newCall(request).execute()println(response.body.string())
}

此时如果直接使用java17运行会报错:

VM options

--add-opens java.base/java=ALL-UNNAMED

--add-opens可以添加多个, 都是一对一, 比如

--add-opens java.base/java.lang=ALL-UNNAMED java.base/java=ALL-UNNAMED 

参考

  1. 解决JDK9以上的非法反射访问警告

更多推荐

动态修改hosts

本文发布于:2023-11-15 00:00:19,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1590092.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:动态   hosts

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!