![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 13:39 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 高手请进,如何提取nslookup域名后的ip |
| 可打印版本 1,147 / 11 |
| 第1楼 lifeisn | 发表于 2010-03-04 12:49 |
| 新手上路 发帖 12 积分 13 | |
|
高手请进,如何提取nslookup域名后的ip 只提取域名的前一个IP。就行。
D:\>nslookup www.baidu.com Server: cns-nh.online.sh.cn Address: 124.74.213.68 Non-authoritative answer: Name: www.a.shifen.com Addresses: 119.75.213.61, 119.75.216.20 Aliases: www.baidu.com 如上面,只要提取119.75.213.61就行。 在 baidu, google 论坛内部也没有找到有类似的 信息。 D:\>nslookup www.sdo.com Server: cns-nh.online.sh.cn Address: 124.74.213.68 Non-authoritative answer: Name: newcdn2.cdn2.sdo.com Address: 222.73.13.148 Aliases: www.sdo.com, wwwsdo.cdn2.sdo.com 不会写BAT,请兄弟帮忙! D:\>nslookup www.baidu.com | find "Addresses:" *** Can't find server name for address 124.74.213.68: Non-existent domain Non-authoritative answer: Addresses: 119.75.216.20, 119.75.213.61 D:\>nslookup www.baidu.com | FINDSTR ^Addresses: Non-authoritative answer: Addresses: 119.75.216.20, 119.75.213.61 [ Last edited by lifeisn on 2010-3-4 at 14:14 ] |
|
| 第2楼 lifeisn | 发表于 2010-03-04 14:15 |
| 新手上路 发帖 12 积分 13 | |
|
怪了,有些是:Addresses: 后面是IP.
有些是Address: 后面才是IP 这BAT,如何写是好啊。 |
|
| 第3楼 tachyon | 发表于 2010-03-04 15:33 |
| 初级用户 发帖 32 积分 33 | |
|
C:\>for /f "skip=1 tokens=2 delims=, " %i in ('echo exit^|nslookup www.baidu.com 2^>nul^|find /i "Addr"') do @echo %i
[ Last edited by tachyon on 2010-3-4 at 15:37 ] |
|
| 第4楼 lifeisn | 发表于 2010-03-04 16:39 |
| 新手上路 发帖 12 积分 13 | |
|
你真厉害啊,你新手上路,就知道这么多。 谢谢。
|
|
| 第5楼 lifeisn | 发表于 2010-03-04 16:56 |
| 新手上路 发帖 12 积分 13 | |
|
'echo exit^| 这个显示 exit 命令不理解
|
|
| 第6楼 tachyon | 发表于 2010-03-04 17:25 |
| 初级用户 发帖 32 积分 33 | |
|
呵呵,我可不算新手了,从年龄上讲我也不算啦。 但水平只能算入门而已。
'echo exit ^|' 因为nslookup是不能自动返回的,echo exit的意思就是在nslookup查询结束之后输入一个exit命令退出。这样cmd才能接管接下来的工作,对输出做分析。 |
|
| 第7楼 lifeisn | 发表于 2010-03-04 17:29 |
| 新手上路 发帖 12 积分 13 | |
|
谢谢帮忙指导。
2^>nul,是放放临时内存里吧。 没有这个2就报错了。2是第二行么? |
|
| 第8楼 tachyon | 发表于 2010-03-04 17:34 |
| 初级用户 发帖 32 积分 33 | |
|
看论坛的教程贴吧。
1, 2是代表输出设备,1是正常输出, 2是错误输出。 学过c的话应该知道 stdout, stderr. G Luck. |
|
| 第9楼 lifeisn | 发表于 2010-03-04 17:43 |
| 新手上路 发帖 12 积分 13 | |
|
你指导的非常详细,你是我的榜样。
|
|
| 第10楼 tachyon | 发表于 2010-03-04 22:03 |
| 初级用户 发帖 32 积分 33 | |
|
不用客气,如果年轻可以花些时间钻研一些东西,对今后是有好处的。(这话说的很冒昧,请不要介意)
只有经过自己思考,实践过的东西,才能真正掌握它。 论坛的精华非常不错,可以多看看。 只是介绍一点点经验,希望对你有帮助。 |
|
| 第11楼 lifeisn | 发表于 2010-03-04 22:43 |
| 新手上路 发帖 12 积分 13 | |
|
非常有帮助~.~
|
|
| 第12楼 lifeisn | 发表于 2010-03-04 22:46 |
| 新手上路 发帖 12 积分 13 | |
|
D:\>for /f "skip=1 tokens=2 delims=, " %i in ('echo exit^|nslookup www.baidu.com 2^>nul^|find /i "Addr"'
do @echo %i119.75.216.20 直接贴这行代码在DOS运行一个%i没问题 。但是在保存在一个BAT文件运行,就报错,非得用2个 %%i, 咋这么大的区别。 for /f "skip=1 tokens=2 delims=, " %%i in ('echo exit^|nslookup www.baidu.com 2^>nul^|find /i "Addr"' do @echo %%i此时不应有 %%i。 2个%%i 才行。 ![]() |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |