中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 03:32
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » DOS下显示IP,并输出到文件,应该怎么写
可打印版本  1,955 / 8
第1楼 zouzhxi 发表于 2006-09-20 11:10
中级用户 发帖 177 积分 430 来自 广东深圳
DOS下显示IP,并输出到文件,应该怎么写
就是说,,,

我要在DOS下获得本机的IP地址,网关地址,DNS
并将它们在显示的情况下输出到文件中。
第2楼 pengfei 发表于 2006-09-20 11:12
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
第3楼 zouzhxi 发表于 2006-09-20 22:56
中级用户 发帖 177 积分 430 来自 广东深圳
我去看了..对我蛮有帮助的.,,,
问题是,出来的效果不是我想要的。

我只想要一个文件,里边只有一个IP。。。如10.10.1.1 简单的一行,就够了。
第4楼 mountvol 发表于 2006-09-20 23:54
初级用户 发帖 117 积分 186
第5楼 zouzhxi 发表于 2006-09-21 00:44
中级用户 发帖 177 积分 430 来自 广东深圳
也不行。。。只能输出一个
echo 10.10.1.1

echo fe80 1>ip.txt

echo fe80 1>ip.txt

echo fe80 1>ip.txt


出来的是fe80呀。。。并没有把10.10.1.1写进去了。
第6楼 electronixtar 发表于 2006-09-21 01:08
铂金会员 发帖 2,672 积分 7,493
>ip.txt echo fe80 1
第7楼 electronixtar 发表于 2006-09-21 01:10
铂金会员 发帖 2,672 积分 7,493
第8楼 pengfei 发表于 2006-09-21 01:11
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
@echo off
setlocal enabledelayedexpansion
set IP_num=0
set Gateway_num=0
set DNS_num=0
for /f "tokens=2* delims=:" %%i in ('ipconfig /all ^| find /i "IP Address"') do (
for /f "tokens=2* delims=:" %%a in ('ipconfig /all ^| find /i "Default Gateway"') do (
for /f "tokens=2* delims=:" %%1 in ('ipconfig /all ^| find /i "DNS Servers"') do (
set IP_=%%i
set Gateway_=%%a
set DNS_=%%1
if "!IP_num!"=="2" set IP=!IP_:~1!
if "!Gateway_num!"=="0" set Gateway=!Gateway_:~1!
if "!DNS_num!"=="0" set DNS=!DNS_:~1!
set /a IP_num=!IP_num!+1
set /a Gateway_num=!Gateway_num!+1
set /a DNS_num=!DNS_num!+1
)
)
)
(echo 外网IP=%IP%
echo.
echo 网关=%Gateway%
echo.
echo DNS=%DNS%
)>ip.txt

楼主只需要修改下面三个值, 便能得到内外网的IP和网关:
if "!IP_num!"=="2"
if "!Gateway_num!"=="0"
if "!DNS_num!"=="0"
后面的跟的值不同提取到的IP也不同,请自行测试!

另外DNS只提取了第一个, 符合楼主的要求吗?

[ Last edited by pengfei on 2006-9-21 at 23:47 ]
第9楼 zouzhxi 发表于 2006-09-21 01:36
中级用户 发帖 177 积分 430 来自 广东深圳
谢谢8楼的回答,棒极了。。吾该晒呢。。。我已经解决了问题
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023