利用批处理文件修改DNS
4,208 Views『作者:RickyZhu 转载务必注明出处和作者』
Tag:programming
我有的时候会把公司做不完的事情带回家,在家通过网络写点脚本,做点事情。
家里的网络用的是深圳聚友网络,当初贪图便宜,没想到便宜没好货,网速距慢,而且三天两头修改配置。
麻烦就麻烦在这配置上,每次在家上网,都需要首先修改DNS为一个固定的DNS服务器。然后登录帐号密码方可上网。但是在公司,就没有这么繁琐,直接接上网线即可,所以需要把DNS取消掉,改为自动从DHCP服务器获取。
修改DNS虽说不是很麻烦,不过有的时候总记不得。所以干脆写了一个批处理脚本。Windows提供了一个netsh,可以在命令行下进行IP地址或者DNS的设置。下面对此作简单介绍,然后show一下我的简单的批处理脚本。
首先进入命令提示行:“Win+R”>“cmd”,回车
输入netsh,回车,出现:netsh>
再输入interface,回车,出现netsh interface>
再输入ip,回车,出现netsh interface ip>
进入IP设置项了,我们要用到以下的命令:
set address - 添加一个 IP 地址到指定的接口。
先看看关于此令的windows帮助:
————————————————————————–
用法: set address [name=]
[[source=]dhcp |
[source=] static [addr=]IP address [mask=]IP subnet mask]
[[gateway=]
参数:
标记 值
name - 接口名称。
source - 下列值之一:
dhcp: 对于指定接口,设置用 DHCP 配置 IP
地址。
static: 设置使用本地静态配置设置 IP
地址。
gateway - 下列值之一:
网关。
none: 不设置默认网关。
gwmetric - 默认网关的跃点数。如果网关设置为 ‘none’,则
不应设置此字段。
只有在 ’source’ 为 ’static’ 时才设置下列选项:
addr - 指定接口的 IP 地址。
mask - 指定 IP 地址的子网掩码。
注释 : 用来将 IP 地址配置模式从 DHCP 模式改为 static,或从 static
模式改为 DHCP。用静态 IP 地址在接口上添加 IP 地址,或添加
默认网关。
示例 :
set address name=”Local Area Connection” source=dhcp
set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1
—————————————————————————-
了解了用法之后,我们就可以进行设置了:
在netsh interface ip>之后输入
set address “本地连接” static 192.168.4.23 255.255.255.192 192.168.4.1 1
然后回车,稍候会显示“确定”,IP设置完毕。
这里解释一下,“本地连接”是指Windows“网络属性”中看到的连接的名称,static表示要指定静态IP而非DHCP指派,后面三个分别是IP,子网掩码,网关,最后的“1”是指默认网关的跃点数,一般为“1”。
至此,命令行下设置IP完成。
同时你还可以在命令行下更改DNS设置,用的是set dns命令,你可以输入set dns /?查看使用方法。
我写了两个简单的批处理文件,分别叫home.bat and office.bat,这样只需要轻点鼠标,即可轻松设置。
先看看home.bat
@echo off
set eth=”本地连接”
set dns=202.104.32.251
echo Now changing the DNS to %dns%
REM netsh interface ip set dns %eth% source=dhcp
netsh interface ip set dns %eth% static %dns%
echo Success
pause
再来看看office.bat
@echo off
set eth=”本地连接”
set dns=202.104.32.251
echo Now changing the DNS to dhcp mode
netsh interface ip set dns %eth% source=dhcp
REM netsh interface ip set dns %eth% static %dns%
echo Success
pause

哈哈,现在我已经不用这一招换IP了~~
公司插网线,回家无线,无线我的无限~~