Board logo

标题: [网络连接] 关于用批处理解析网址的一点问题 [打印本页]

作者: zypA13510    时间: 2013-9-25 16:48     标题: 关于用批处理解析网址的一点问题

如题,输入网址后,用批处理返回相应IP。代码如下
  1. @echo off
  2. echo 输入网址以获取IP地址,或输入exit退出
  3. echo.
  4. echo 要查询的网址:
  5. set /p ST= http://
  6. if /i "%ST%"=="exit" exit
  7. for /f "skip=1 tokens=2 delims=, " %%i in ('nslookup -vc %ST% 8.8.8.8 2^>nul^|find /i "Addr"') do echo %%i
  8. pause
复制代码
代码运行正常,不过由于启用了IPv6,返回的通常都是IPv6的地址。于是将代码修改如下,增加了-qt=a开关指定只获取IPv4地址
  1. @echo off
  2. echo 输入网址以获取IP地址,或输入exit退出
  3. echo.
  4. echo 要查询的网址:
  5. set /p ST= http://
  6. if /i "%ST%"=="exit" exit
  7. for /f "skip=1 tokens=2 delims=, " %%i in ('nslookup -vc -qt=a %ST% 8.8.8.8 2^>nul^|find /i "Addr"') do echo %%i
  8. pause
复制代码
然后就无法输出任何IP地址了……求解
作者: 522235677    时间: 2013-9-25 18:00

  1. @echo off
  2. set /p c=域名http://
  3. for /f "tokens=2 delims=[]" %%i in ('ping %c% -n 1 -w 1') do (set IP=%%i)
  4. echo %ip%
  5. pause
复制代码
直接在从ping返回的结果截取出来不是更好?
作者: Batcher    时间: 2013-9-25 20:48

-qt=a
在等号前面加个转义字符试试
-qt^=a
作者: zypA13510    时间: 2013-9-26 23:05

回复 2# 522235677


    你看懂这个干什么用了吗?提示:-vc开关指定使用TCP方式请求DNS
作者: zypA13510    时间: 2013-9-26 23:08

回复 3# Batcher


    可以了,谢谢
    不过还是想问下为什么呢?批处理学的不多不明所以,求赐教
作者: Batcher    时间: 2013-9-27 08:43

回复 5# zypA13510


等号在那个地方的作用是命令分隔符,跟空格的作用相同。
如果要作为普通的等号来使用,就需要转义。
作者: 522235677    时间: 2013-9-27 16:03

回复 4# zypA13510


    没仔细看
作者: zypA13510    时间: 2013-9-28 00:02

回复 7# 522235677


    请上网搜索G{和谐}F【社会】W,你懂的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2