当年华为和思科闹的沸沸扬扬的官司里,有一项是起诉华为的CLI和思科的雷同。其实,CLI这东西,不仅仅是华为这么干,其他的CLI大抵类似,这不,windowsXP和2000都有个netsh.exe程序,就是微软版本的网络配置CLI。
正好有个朋友问我,能不能写个程序切换网卡配置?要求能够在两种配置下切换:一是动态获取网址,二是静态配置。我一想,netsh不正好干这事情吗?打开netsh,好多年没有摆弄过路由器了,netsh的风格还是不由得让我想起了不少往事。
干这件事其实很简单。我的机器是DHCP分配地址的,先看看配置是什么,直接键入:
interface ip
dump
去掉注释,得到下面配置:
pushd interface ip
reset name="本地连接" #这行是我加的
set address name="本地连接" source=dhcp
set dns name="本地连接" source=dhcp register=PRIMARY
set wins name="本地连接" source=static addr=192.168.100.10
add wins name="本地连接" addr=192.168.100.11 index=2
popd
存到dhcp.cfg文件里,再写一个dhcp.bat,里面只有一句话:netsh exec dhcp.cfg。
再通过控制面板,去静态配置IP,重复前面的动作,又得到一份配置:
pushd interface ip
reset name="本地连接" #这行是我加的
set address name="本地连接" source=static addr=192.168.66.149 mask=255.255.255.0
set address name="本地连接" gateway=192.168.66.1 gwmetric=0
set dns name="本地连接" source=static addr=192.168.100.10 register=PRIMARY
add dns name="本地连接" addr=192.168.100.11 index=2
set wins name="本地连接" source=static addr=192.168.100.10
add wins name="本地连接" addr=192.168.100.11 index=2
popd
同样,建一个static.bat文件,里面也只有一句话:netsh exec static.cfg
现在,要切换配置的话,只要双击相应的bat文件就是了。如果有多份配置,做法雷同。
netsh是强大的,全功能的工具。如果你想把机器变成一台路由器也可以通过它来完成,对于那些熟悉路由器的人来说,这简直是小菜一碟。