标题: [网络连接] [已解决]批处理怎样获取IP后自动固定? [打印本页]
作者: zjhuzi 时间: 2009-5-7 13:44 标题: [已解决]批处理怎样获取IP后自动固定?
大家知道 ipconfig 可以查看本机IP地址,但是现在有一个问题,
能不能用一个批处理把自动获取的IP记录下来,然后设置成固定的IP
以后开机就不用自动搜索IP了。
作者: zjhuzi 时间: 2009-5-7 13:45
补充一点:还有DNS地址,也要可以自动填写哦
命令是复制代码
作者: NeverOK 时间: 2009-5-7 13:58
@echo off
:::读取本机Mac地址
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
:::::::::读取本机ip地址
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >IPAddr.txt
find "Subnet Mask" ipconfig.txt >MASKAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
for /f "skip=2 tokens=15" %%m in (MASKAddr.txt) do set MASKS=%%m
:::::::::读取网关地址
if exist GateIP.txt del GateIP.txt
find "Default Gateway" ipconfig.txt >GateIP.txt
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G
:::::::::读取DNS地址
if exist DNSServers.txt del DNSServers.txt
find "DNS Servers" ipconfig.txt >DNSServers.txt
for /f "skip=2 tokens=13" %%e in (DNSServers.txt) do set DNSIP=%%e
:::::::::设置本机IP地址
netsh interface ipv4 set address name="本地连接" source=static address=%IP% mask=%MASKS% gateway=%GateIP%
netsh interface ipv4 add dnsserver name="本地连接" address=%DNSIP% index=1
:::::::::清理文件
del /q ipconfig.txt
del /q IPAddr.txt
del /q MASKAddr.txt
del /q GateIP.txt
del /q DNSServers.txt
echo 任务完成
[ 本帖最后由 NeverOK 于 2009-5-7 14:06 编辑 ]
作者: zjhuzi 时间: 2009-5-7 21:04 标题: 回 楼上 的 帖子 【执行结果如下】
下列命令没有找到: interface ipv4 set address name=本地连接 source=static address
=10.117.62.150 mask=255.255.0.0 gateway=10.117.0.1。
下列命令没有找到: interface ipv4 add dnsserver name=本地连接 address=. index=1。
任务完成
请按任意键继续. . .
作者: NeverOK 时间: 2009-5-7 21:47 标题: SORRY
netsh interface ipv4 set address name="本地连接" source=static address=%IP% mask=%MASKS% gateway=%GateIP%
netsh interface ipv4 add dnsserver name="本地连接" address=%DNSIP% index=1
我是在windows 2008里的,所以有这个命令.你的是XP或2000吧?
把NETSH语句改成:
netsh interface ip set address name="本地连接" source=static address=%IP% mask=%MASKS% gateway=%GateIP%
netsh interface ip add dnsserver name="本地连接" address=%DNSIP% index=1
作者: zjhuzi 时间: 2009-5-7 21:49 标题: 回复 5楼 的帖子【操作系统WINXP,执行效果如下】
'address' 不是这个指令的有效参数。
此命令提供的语法不正确。请查看帮助以获取正确的语法信息。
用法: 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
下列命令没有找到: interface ip add dnsserver name=本地连接 address=. index=1。
任务完成
请按任意键继续. . .
作者: NeverOK 时间: 2009-5-7 21:57 标题: 你再试一下
netsh interface ip set address name="本地连接" static %IP% %MASKS% %GateIP% 1
netsh interface ip add dns name="本地连接" %DNSIP% index=1
有的系统可以接受上面的语法,有的能接受4楼语法
[ 本帖最后由 NeverOK 于 2009-5-7 21:59 编辑 ]
作者: zjhuzi 时间: 2009-5-7 22:00 标题: 回复 7楼 的帖子 , 测试结果
- 255.255.255.255 不是 mask 的可接受的值。
-
- . 不是 addr 的可接受的值。
-
- 任务完成
复制代码
作者: zjhuzi 时间: 2009-5-7 22:05
NeverOK,差最后一步了~~
作者: NeverOK 时间: 2009-5-7 22:09 标题: 以下语句在windows xp \windows 2000\ windows 2003上测试通过
@echo off
:::读取本机Mac地址
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
:::::::::读取本机ip地址
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >IPAddr.txt
find "Subnet Mask" ipconfig.txt >MASKAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
for /f "skip=2 tokens=15" %%m in (MASKAddr.txt) do set MASKS=%%m
:::::::::读取网关地址
if exist GateIP.txt del GateIP.txt
find "Default Gateway" ipconfig.txt >GateIP.txt
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G
:::::::::读取DNS地址
if exist DNSServers.txt del DNSServers.txt
find "DNS Servers" ipconfig.txt >DNSServers.txt
for /f "skip=2 tokens=15" %%e in (DNSServers.txt) do set DNSIP=%%e
:::::::::设置本机IP地址
netsh interface ip set address name="本地连接" static %IP% %MASKS% %GateIP% 1
netsh int ip add dns name="本地连接" %DNSIP% index=1
:::::::::清理文件
del /q ipconfig.txt
del /q IPAddr.txt
del /q MASKAddr.txt
del /q GateIP.txt
del /q DNSServers.txt
echo 任务完成
pause
作者: zjhuzi 时间: 2009-5-7 22:14 标题: 回复 10楼 的帖子[WINXP sp3 番茄花园v1.21 操作系统 测试]
255.255.255.255 不是 mask 的可接受的值。
无法访问配置,因为另一配置工具正在访问它。
关闭其他窗口,然后再试一次。
任务完成
作者: zjhuzi 时间: 2009-5-7 22:19 标题: 回复 11楼 的帖子 【原因已查明,10楼代码正确】
O(∩_∩)O thanks! NeverOK, I appreciate you! Thank you any way.
[ 本帖最后由 zjhuzi 于 2009-5-7 22:23 编辑 ]
作者: NeverOK 时间: 2009-5-7 22:20
哈,我刚刚在虚拟机里也是遇到了类似的问题,做的好一点应该做个清除现有配置(刚刚测试的时候产生的配置)项的功能,你==
下面的内容你保存一下(可以自动获取IP,也可以手动指定)
@echo off
:choice_A
echo ┌────────┐
echo │ [1] 手动指定ip │
echo │ [2] 自动获取ip │
echo │ 请选择... │
echo └────────┘
set /p choice_A=
if /i "%choice_A%"=="1" goto :choice_go1
if /i "%choice_A%"=="2" goto :choice_go2
goto choice_cc
netsh int ip set address name="本地连接" dhcp
:choice_go1
:::读取本机Mac地址
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
:::::::::读取本机ip地址
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >IPAddr.txt
find "Subnet Mask" ipconfig.txt >MASKAddr.txt
for /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I
for /f "skip=2 tokens=15" %%m in (MASKAddr.txt) do set MASKS=%%m
:::::::::读取网关地址
if exist GateIP.txt del GateIP.txt
find "Default Gateway" ipconfig.txt >GateIP.txt
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G
:::::::::读取DNS地址
if exist DNSServers.txt del DNSServers.txt
find "DNS Servers" ipconfig.txt >DNSServers.txt
for /f "skip=2 tokens=15" %%e in (DNSServers.txt) do set DNSIP=%%e
:::::::::设置本机IP地址
netsh interface ip set address name="本地连接" static %IP% %MASKS% %GateIP% 1
netsh int ip add dns name="本地连接" %DNSIP% index=1
:::::::::清理文件
del /q ipconfig.txt
del /q IPAddr.txt
del /q MASKAddr.txt
del /q GateIP.txt
del /q DNSServers.txt
echo 任务完成
pause
goto :eof
:choice_go2
netsh int ip set address name="本地连接" dhcp
netsh int ip set DNS name="本地连接" dhcp
echo 任务完成
pause
goto :eof
:end
[ 本帖最后由 NeverOK 于 2009-5-7 22:22 编辑 ]
作者: zjhuzi 时间: 2009-5-7 22:25 标题: 回复 13楼 的帖子[测试结果]
┌────────┐
│ [1] 手动指定ip │
│ [2] 自动获取ip │
│ 请选择... │
└────────┘
1
255.255.255.255 不是 mask 的可接受的值。
确定。
任务完成
作者: NeverOK 时间: 2009-5-7 22:26
先用2嘛,清除一下现有配置
作者: zjhuzi 时间: 2009-5-7 22:28 标题: 回复 15楼 的帖子
是的,是按照先2后1的方法操作的.
原因可能如下:
Ethernet adapter Bluetooth 网络连接:
Media State . . . . . . . . . . . : Media disconnected
Description . . . . . . . . . . . : Bluetooth 设备(个人区域网) #3
Physical Address. . . . . . . . . : 00-15-83-15-A3-10
我有使用蓝牙设备。
作者: zjhuzi 时间: 2009-5-7 22:29
你看能加一个命令
执行操作前
,禁用蓝牙网络
执行操作后
恢复蓝牙网络
不过这样的关系不太大
毕竟不是所有人都使用蓝牙网络的
如果能加上去,那就太好了.
[ 本帖最后由 zjhuzi 于 2009-5-7 22:31 编辑 ]
作者: NeverOK 时间: 2009-5-7 22:32
蓝牙,你的是IBM的本?我的也是,倒没注意,
意见很好,==
-------------------------------------------------
我看到你的蓝牙=#3了,你的ipconfig /all文本可以帖上来吗?
[ 本帖最后由 NeverOK 于 2009-5-7 22:34 编辑 ]
作者: zjhuzi 时间: 2009-5-7 22:41
[attach]1271[/attach]
作者: zjhuzi 时间: 2009-5-7 22:43
禁用网卡 "bluetooth 设备(个人区域网)#3" 即可解决问题.
作者: zjhuzi 时间: 2009-5-7 22:48
C:\Documents and Settings\Administrator>ipconfig /all
Windows IP Configuration
Host Name . . . . . . . . . . . . : ae23ad2248f1412
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . :
Ethernet adapter 本地连接:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek RTL8168C(P)/8111C(P) PCI-E G
igabit Ethernet NIC
Physical Address. . . . . . . . . : 00-E0-4D-AB-A9-36
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . :
Subnet Mask . . . . . . . . . . . :
Default Gateway . . . . . . . . . :
DHCP Server . . . . . . . . . . . :
DNS Servers . . . . . . . . . . . :
Lease Obtained. . . . . . . . . . : 2009年5月7日 22:26:55
Lease Expires . . . . . . . . . . : 2009年5月7日 23:26:55
Ethernet adapter Bluetooth 网络连接:
Media State . . . . . . . . . . . : Media disconnected
Description . . . . . . . . . . . : Bluetooth 设备(个人区域网) #3
Physical Address. . . . . . . . . : 00-15-83-15-A3-10
注:ip地址已删除.希望不会影响结果.
[ 本帖最后由 zjhuzi 于 2009-5-7 22:54 编辑 ]
作者: zjhuzi 时间: 2009-5-7 22:55
需要使用DevCon工具辅助!?????
[ 本帖最后由 zjhuzi 于 2009-5-7 22:59 编辑 ]
作者: NeverOK 时间: 2009-5-7 23:04
不用,因为for的tokens搜索以空格区分列,bluetooth有3个空格,我对FOR还不是很熟悉,在摸索
作者: wcmcool 时间: 2009-5-8 13:18
如果不止一块网卡呢,如果本地连接不是本地连接呢,或者叫本地连接2,或者其它的呢
作者: Batcher 时间: 2009-5-8 14:40 标题: 回复 24楼 的帖子
本地连接的具体名称可以通过批处理来获取,多网卡的情况批处理也可胜任,具体问题具体分析。
作者: brqtpt007 时间: 2011-8-26 09:53
这个都可以自动获取为什么还要设成固定呢。
作者: lanni654321 时间: 2012-8-30 12:27
呵呵 这个真的很不错呢 坚决支持……
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |