12月9
想更改hosts文件添加域名与地址ip、由于hosts文件受保护并且是只读属性。因此需要先赋予权限,并取消只读属性才能正常写入
/E 编辑 ACL 而不替换。
/G 赋予指定用户访问权限。
F 完全权限。

Administrators、SYSTEM、Users(是windows用户组需要什么加什么)
attrib 是控制文件属性的
+ 添加文件属性
- 删除文件属性
R 只读文件属性
A 存档文件属性
S 系统文件属性
H 隐藏文件属性
I 无连接属性
@echo
@echo 127.0.0.1 .heckjj.com >>E:hosts(这是我们要写入的内容)
虽然脚本比较笨拙,但是亲测有效,若是找不到好的方法可以选择试一下O(∩_∩)O
======================================================================================
1、新建记事本输入一下内容
bat脚本代码如下:
set HOSTS=C:\Windows\System32\drivers\etc\hosts
echo Y|cacls %HOSTS% /E /G Administrators:F
echo Y|cacls %HOSTS% /E /G SYSTEM:F
echo Y|cacls %HOSTS% /E /G Users:F
attrib -r -h %HOSTS%
@echo
@echo.>>%HOSTS%
@echo 127.0.0.1 heckjj.com >>%HOSTS%
attrib +r +h %HOSTS%
title 刷新本地dns缓存并退出
echo 查看修改后的hosts文件内容,1秒后退出!
type "%HOSTS%" |findstr /v "^#"|findstr "[0-9]"
ping -n 1 127.0.0.1>nul
ipconfig /flushdns
echo 刷新本地缓存成功,即将退出!
ping -n 2 127.0.0.1>nul
echo.
exit
2、将记事本后缀名改为.bat格式的文件,然后双击即可完成修改。
/E 编辑 ACL 而不替换。
/G 赋予指定用户访问权限。
F 完全权限。
Administrators、SYSTEM、Users(是windows用户组需要什么加什么)
attrib 是控制文件属性的
+ 添加文件属性
- 删除文件属性
R 只读文件属性
A 存档文件属性
S 系统文件属性
H 隐藏文件属性
I 无连接属性
@echo
@echo 127.0.0.1 .heckjj.com >>E:hosts(这是我们要写入的内容)
虽然脚本比较笨拙,但是亲测有效,若是找不到好的方法可以选择试一下O(∩_∩)O
======================================================================================
1、新建记事本输入一下内容
bat脚本代码如下:
set HOSTS=C:\Windows\System32\drivers\etc\hosts
echo Y|cacls %HOSTS% /E /G Administrators:F
echo Y|cacls %HOSTS% /E /G SYSTEM:F
echo Y|cacls %HOSTS% /E /G Users:F
attrib -r -h %HOSTS%
@echo
@echo.>>%HOSTS%
@echo 127.0.0.1 heckjj.com >>%HOSTS%
attrib +r +h %HOSTS%
title 刷新本地dns缓存并退出
echo 查看修改后的hosts文件内容,1秒后退出!
type "%HOSTS%" |findstr /v "^#"|findstr "[0-9]"
ping -n 1 127.0.0.1>nul
ipconfig /flushdns
echo 刷新本地缓存成功,即将退出!
ping -n 2 127.0.0.1>nul
echo.
exit
2、将记事本后缀名改为.bat格式的文件,然后双击即可完成修改。
12月9
公司有个项目不能解析内网所以需要对本地hosts文件进行修改,添加一条本地域名解析记录,如果让客户去操作,很容易破坏掉原先的hosts文件,用户只需要以管理员权限运行即可,如果记录存在则替换掉。
由于办公电脑都使用信创麒麟的系统,所以最好做一个deb的安装包,通过程序写修改的,在信创麒麟的系统电脑下载安装即可执行。
下面是实现逻辑,要将java打包成deb安装包就需要使用jdeb的maven插件来打包。
我使用的是1.8的版本,具体配置就不贴上来了,需要的联系我。
<artifactId>jdeb</artifactId>
<groupId>org.vafer</groupId>
<version>1.8</version>
package com.nine.rivers.jdeb;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.util.StrUtil;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* @Description 不破坏原有hosts文件,支持新host绑定或修改支持host解绑
* @Date 2022/12/9 16:42
* @Author heck
**/
public class HostUtil {
public static final String LINUX = "linux";
public static final String LINUX_HOSTS_PATH = "/etc/hosts";
public static final String WINDIR = "windir";
public static final String WIN_HOSTS_PATH = "\\system32\\drivers\\etc\\hosts";
public static final String OS_NAME = "os.name";
/**
* 获取host文件路径
*
* @return
*/
public static String getHostFile() {
String fileName = null;
// 判断系统
if (LINUX.equalsIgnoreCase(System.getProperty(OS_NAME))) {
fileName = LINUX_HOSTS_PATH;
} else {
fileName = System.getenv(WINDIR) + WIN_HOSTS_PATH;
}
return fileName;
}
由于办公电脑都使用信创麒麟的系统,所以最好做一个deb的安装包,通过程序写修改的,在信创麒麟的系统电脑下载安装即可执行。
下面是实现逻辑,要将java打包成deb安装包就需要使用jdeb的maven插件来打包。
我使用的是1.8的版本,具体配置就不贴上来了,需要的联系我。
<artifactId>jdeb</artifactId>
<groupId>org.vafer</groupId>
<version>1.8</version>
package com.nine.rivers.jdeb;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.util.StrUtil;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* @Description 不破坏原有hosts文件,支持新host绑定或修改支持host解绑
* @Date 2022/12/9 16:42
* @Author heck
**/
public class HostUtil {
public static final String LINUX = "linux";
public static final String LINUX_HOSTS_PATH = "/etc/hosts";
public static final String WINDIR = "windir";
public static final String WIN_HOSTS_PATH = "\\system32\\drivers\\etc\\hosts";
public static final String OS_NAME = "os.name";
/**
* 获取host文件路径
*
* @return
*/
public static String getHostFile() {
String fileName = null;
// 判断系统
if (LINUX.equalsIgnoreCase(System.getProperty(OS_NAME))) {
fileName = LINUX_HOSTS_PATH;
} else {
fileName = System.getenv(WINDIR) + WIN_HOSTS_PATH;
}
return fileName;
}





