标题: [网络连接] 两张网卡的情况下,只想获取其中特定的一块网卡的ip信息 [打印本页]
作者: quake_wu 时间: 2010-1-18 13:27 标题: 两张网卡的情况下,只想获取其中特定的一块网卡的ip信息
该怎么办呢?
补充
[attach]2154[/attach]
作者: Batcher 时间: 2010-1-18 15:00
请把ipconfig /all的结果贴到顶楼,并说清楚你想获取哪一块。
作者: quake_wu 时间: 2010-1-18 16:34
我是想获取vpn拨号分配的ip
其实如果vpn服务器固定的话很好解决,直接ipconfig|find "172.16.0"就行了
但是我的实际应用环境会有用到很多个vpn的每个vpn分配的网段都不一样
作者: batman 时间: 2010-1-18 22:01
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('ipconfig /all') do (
- for /f "tokens=1,2 delims=:" %%b in ("%%a") do (
- set "str=%%b"&set "var=%%c"
- if defined flag if "!str:ip=!" neq "!str!" echo !var:~,1!
- if "!str:~,-3!" equ "vpn" set "flag=a"
- )
- )
- pause>nul
复制代码
[ 本帖最后由 batman 于 2010-1-18 22:03 编辑 ]
作者: quake_wu 时间: 2010-1-19 09:49
感谢,很好用
不过我这部分看不懂,能给我讲解一下吗?
for /f "tokens=1,2 delims=:" %%b in ("%%a") do (
set "str=%%b"&set "var=%%c"
if defined flag if "!str:ip=!" neq "!str!" echo !var:~,1!
if "!str:~,-3!" equ "vpn" set "flag=a"
作者: quake_wu 时间: 2010-1-19 10:06
当我新增一个网卡时,执行的时候就达不到预想的结果了
请帮忙看看原因在哪
[attach]2156[/attach]
作者: batman 时间: 2010-1-19 10:12
用个goto跳出来就是的- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('ipconfig /all') do (
- for /f "tokens=1,2 delims=:" %%b in ("%%a") do (
- set "str=%%b"&set "var=%%c"
- if defined flag if "!str:ip=!" neq "!str!" echo !var:~,1!&goto next
- if "!str:~,-3!" equ "vpn" set "flag=a"
- )
- )
- :next
- pause>nul
复制代码
作者: quake_wu 时间: 2010-1-19 14:31
可否帮忙再确认一下,我执行之后还是不行
作者: Batcher 时间: 2010-1-19 15:00 标题: 回复 8楼 的帖子
能否详细说说“不行”的具体表现?
作者: quake_wu 时间: 2010-1-19 15:31
我在:next后面加了一行echo %var%
但是执行后显示 "ECHO 处于关闭状态"
你可以帮忙改写一下让ip值显示出来吗?
作者: Batcher 时间: 2010-1-19 16:06 标题: 回复 10楼 的帖子
把百分号改成感叹号
作者: quake_wu 时间: 2010-1-20 10:18
不知道为什么禁止上传图片了
我测试发现当执行ipconfig的时候只要vpn的ip信息出现在最下方,那么批处理执行时候就完全正常
但是当执行ipconfig的时候vpn的ip信息出现不是最下方的时候,就会出现无法返回结果的现象
[attach]2164[/attach]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |