最近准备写一个测试程序,需要模拟多个IP地址监听请求和发送请求。找了很多动态修改IP地址的文章,最后发现了windows自带的命令--Netsh
最简单的应用:
【给网卡增加和删除IP地址】
增加: netsh interface ip add address "本地连接" 192.168.1.25 255.255.255.0
删除: netsh interface ip del address "本地连接" 192.168.1.25
该命令在Window2000/XP/2003下 均可以正常运行,且不需要重启就可应用新的IP地址通信。
关于Netsh的具体命令简要介绍如下:
netsh interface ? //显示 interface 支持的子命令
ip //ip相关的命令
portproxy //端口映射相关,具体请参照 :http://technet.microsoft.com/zh-cn/library/cc776297(WS.10).aspx
这里只解释一下修改IP配置的详细命令,具体各命令的使用大家可以按 netsh ? 的原则,逐级显示命令的具体使用。
netsh interface ip add address "[连接名称]" [IP地址] [子网掩码] [gateway={网关IP}] [gwmetric={跃点数}]
例如:
netsh interface ip add address "本地连接" 192.168.1.10 255.255.255.0 gateway=192.168.1.1 gwmetric=2
也可单独配置网关
netsh interface ip add address "本地连接" gateway=192.168.1.1 gwmetric=0 //自动跃点
====================================
另外,netsh还可以配置防火墙的端口许可和禁止:
例如: add allowedprogram C:/MyApp/MyApp.exe MyApp ENABLE
add portopening TCP 80 MyWebPort
具体解释:
add allowedprogram
[ program = ] path
[ name = ] name
[ [ mode = ] ENABLE|DISABLE
[ scope = ] ALL|SUBNET|CUSTOM
[ addresses = ] addresses
[ profile = ] CURRENT|DOMAIN|STANDARD|ALL ]
添加防火墙允许的程序配置。
参数:
program - 程序路径和文件名。
name - 程序名。
mode - 程序模式(可选)。
ENABLE - 允许通过防火墙(默认值)。
DISABLE –不允许通过防火墙(默认值)。
scope - 程序范围(可选)。
ENABLE - 允许所有流量通过防火墙(默认值)。
SUBNET - 只允许本地网络(子网)流量通过防火墙。
CUSTOM - 只允许指定的流量通过防火墙。
addresses - 自定义范围地址(可选)。
备注: 'scope' 必须是 'CUSTOM' 才能指定 'addresses'。
add portopening
[ protocol = ] TCP|UDP|ALL
[ port = ] 1-65535
[ name = ] name
[ [ mode = ] ENABLE|DISABLE
[ scope = ] ALL|SUBNET|CUSTOM
[ addresses = ] addresses
[ profile = ] CURRENT|DOMAIN|STANDARD|ALL
[ interface = ] name ]
添加防火墙端口配置。
参数:
protocol - 端口协议。
TCP - 传输控制协议(TCP)。
UDP - 用户数据报协议(UDP)。
ALL - All 协议。
port - 端口号。
name - 端口名。
mode - 端口模式(可选)。
ENABLE - 允许通过防火墙(默认值)。
DISABLE - 不允许通过防火墙(默认值)。
mode - 端口范围(可选)。
ENABLE - 允许所有流量通过防火墙(默认值)。
SUBNET - 只允许本地网络(子网)流量通过防火墙。
CUSTOM - 只允许指定的流量通过防火墙。
addresses - 自定义范围地址(可选)。
name - 接口名(可选)。
备注: 'profile' 和 'interface' 不能一起指定。
'scope' 和 'interface' 不能一起指定。
'scope' 必须是 'CUSTOM' 才能指定 'addresses'。