最近在公司遇到一个事儿?一同事对我说:“还记得公司上网的IP地址、DNS吗?我忘记了”。我说,这个还需要记吗?不需要,直接做一个bat文件就可以了。他感到惊讶,于是向我请教。感觉又可以当一回老师,我也在他面前卖弄起来,呵呵。其实对于IP地址和其相关的一些细节,如DNS、WIN等都可以用命名实现。在一些有经验的网管人员里,用命令多于用鼠标。而且在管理一个大型网络中,通过用命令可以把一些相同的操作制作成脚本,从而可节省管理人员的大量时间,对于像我这种属于懒人的同仁们,则可以试试。。。。
   下面就以如何实现在家动态获得IP地址,在公司以静态的方式获取IP地址为例


   要实现的主要功能是:当我们去公司上网时,公司给每个人分配的IP地址、网关、DNS不需要再手动的输入;当回到家时,不需要再把原来在公司设置的相关信息转成动态获取

说了这么多的废话,现在开始制作脚本吧?
 第一步:认识netsh命令?
      Netsh 是windows系统本身提供的功能强大的网络配置命令行工具,个人觉得很牛B 哟!!。微软集成这个命令就是为了方便网管人员等人员进行网络配置信息的导入、导出。它可在xp\windows 200\windows 2003等环境下使用,至于window 7能否,这个我还没有试过,博友们不防试试。懒人我就在这里不试了呀。
 其用法: netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [-u [DomainName]UserName] [-p Password | *] [Command | -f ScriptFile]
大家不防查查相关帮助文件;
而下面,我们这里要用到的netsh命令,主要是
netsh interface ip 这个命令的意思是设备指定网卡的IP相关配置信息。
第二步:利用netsh命令来查看“本地连接”的配置信息


要用它来实现配置信息,首先我们要知道目前我们的配置信息是如何的,这里假如我的配置是在公司的信息。
查看我们的IP信息  可能有博友会说我知道查看IP信息的命令:ipconfig
ipconfg 确实可以,但netsh同样可以查看IP信息;而且在window平台不受操作系统的版本不同的影响而不同。所以相对于IPCONFIG来说,netsh的可用性更广哟!!

在运行中输入:“cmd”
然后在输入:"netsh interface ip show address"
下图是一步一步操作的结果:


     从图中我们可以看到,有两块网卡,一块为无线的,另一块为'本地连接',目前正在使用的是“本地连接”这张网卡,如 Ip地址为:172.16.45.129

其实进行了netsh环境,就可以利用其相关命令进行更改网络配置,但我们不是那么笨到家,为了改网络配置还去记住命令,这也太傻了吧?所以我们不能这么做,那怎么办,懒惰的我,当然想到更好的办法:
  我们可以通过查看目前的配置信息,把目前的配置信息导出来,以后要用时,直接把它导入进去就可以了。
通过netsh interface ip dump即可显示当前系统下的网卡配置信息
详情见如下图:

 第三步,如何将他们导出来呢?进行修改呢?

可用如下命令将他们导出来(记住一下不要interface 下输入下面的命令,最好是在cmd命令后输入,不然会报错)
netsh -c interface ip dump >d:ip.txt
这条语句的意思是将当前的所有网卡配置信息导出到d盘下新建的IP。txt文件中;
导出的信息如下:


-c是copy的意思;

第四步,修改它,以适应不同环境下的运行;
  导出的文本,我们对文本的ip\subnet\dns等信息进行修改,然后将文本再进行保存,再通过
netsh -f d:\ip.txt 命令;将其导入;
   对于我这种健忘的人来说,记住命令实在太痛苦了,有没有不用记命令的方式呢?有当然有;把txt文件中的信息变成bat等可执行的命令,不就可以了吗?
于是将ip.txt另存为bat文件;都知道txt文件中变成bat文件肯定有一些不能执行的;比如:
“# ----------------------------------
# 接口 IP 配置        
# ---------------------------------- ”
把它们删除;
同时为了能执行配置信息,当然得加入:“netsh interface ip
于是经过一定的修改后的IP.bat文件的内容如下图:

 

 

 

那么我执行一下,看是否成功
结果去报错,说什么:“pushd interface ip”或“popd”等找不到文件,这说明这两条语句不能直接,删除它们看能否直接。于是删除;结果成功,注意,根据我的经验若你的电脑有杀毒软件,会出现了我们安装
的防火墙的一些安全提示,没有关系直接允许直接就行了。
于是类似的执行脚本就出来了:

netsh interface ip set address name="本地连接" source=static addr=172.16.45.129 mask=255.255.0.0 gateway=172.16.45.254 gwmetric=1
netsh interface ip set dns name="本地连接" source=static addr=202.106.196.115 register=PRIMARY
netsh interface ip add dns name="本地连接" addr=211.99.25.1 index=2

上面的脚本,对于博友们来说,只需要改一次ip\mask\gateway\dns的信息,保存为bat文件,放在桌面上,以后只需要单击一下,就完成了相关信息的配置了,多方便呀,呵呵!
 

至于自动动态获取的脚本方法,在这里给大家直接给出了:

netsh interface ip set address name="本地连接" source=dhcp
netsh interface ip set address name="本地连接" source=dhcp register=PRIMARY
netsh interface ip set dns name="本地连接" source=dhcp
怎么样,不知你是否会了。

 ----------------------------------------------------------------------------------

附上我自己的bat文件下载地方:

http://down.51cto.com/data/136807