中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » Windows下用命令行修改IP详解,附批处理文件
作者:
标题: Windows下用命令行修改IP详解,附批处理文件 上一主题 | 下一主题
yt110
初级用户





积分 22
发帖 9
注册 2008-3-23
状态 离线
『楼 主』:  Windows下用命令行修改IP详解,附批处理文件

由于作者所处的地方要经常在不同的网络之间切换,比如局域网、系统内部网和外网(光是外网我要常常在3个ADSL网之间切换)。我之前一直用的方法是在本机上设置多个不同网段的IP,然后切换路由(Route),这样不同的网段通过不同的网关出去,就可以达到同时访问多个网络的目的。但是这样我发现经常可能出现一些问题,所以我决定用最原始的方法来解决,那就是在要使用某一个网段的时候就只用这个网段的IP,这样就需要不停的更换IP地址。当然,在Windows的“网络连接”属性中这样的更改是很麻烦的,不过还好的是,Windows的“netsh”命令提供了命令行下更改IP的功能,利用这一点,可以将它做成BAT的批处理文件,就方便多了。

以下就是具体的方法和命令详解:

首先进入命令提示行:“Win+R”>“cmd”,回车
输入netsh,回车,出现:netsh>
再输入interface,回车,出现netsh interface>
再输入ip,回车,出现netsh interface ip>

进入IP设置项了,我们要用到以下的命令:
set address     - 添加一个 IP 地址到指定的接口。

先看看关于此令的windows帮助:
--------------------------------------------------------------------------
用法: set address [name=]<string>
       [[source=]dhcp |
        [source=] static [addr=]IP address [mask=]IP subnet mask]
       [[gateway=]<IP address>|none [gwmetric=]integer]

参数:

      标记            值
      name          - 接口名称。
      source        - 下列值之一:
                     dhcp: 对于指定接口,设置用 DHCP 配置 IP
                           地址。
                     static: 设置使用本地静态配置设置 IP
                             地址。

      gateway       - 下列值之一:
                     <IP address>: 您设置的 IP 地址的指定默认
                                   网关。
                     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 /?查看使用方法。

最后,我们将这些命令保存为一个BAT文件(setIP192168423.bat):

@echo off
rem eth //eth 为网卡名称,可在网络连接中查询,如"本地连接"
set eth="本地连接"
rem ip //ip 为你想更改的IP
set ip=192.168.4.23
rem gw //gw 为网关地址
set gw=192.168.4.1
rem netmasks //netmasks 为子网掩码
set netmasks=255.255.255.192

echo 正在将本机IP更改到: %ip%
rem
if %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% > nul
if not %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% 1 > nul
echo.........................
echo 检查当前本机IP:
ipconfig
echo.........................
echo 成功将本机IP更改为%ip%!
pause
close

2008-3-23 21:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
goofy123
初级用户





积分 36
发帖 17
注册 2008-1-7
状态 离线
『第 2 楼』:  谢谢

坐下来仔细拜读

2008-3-24 13:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bigwuke
新手上路





积分 2
发帖 1
注册 2007-1-31
状态 离线
『第 3 楼』:  

刚看过这方面,很详细,慢慢学习一下

2008-3-27 14:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BWSkyer
中级用户

我是DOS学者


积分 367
发帖 180
注册 2006-5-14
来自 重庆
状态 离线
『第 4 楼』:  

DNS呢? 光改IP没有用的, 有时候还要修改dns



My blog:左铅右椠 上善若水
My team: 519创意团队
2008-3-27 14:20
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (309843581)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: