【问题标题】:Script to output the resolved hostnames to a file [closed]将解析的主机名输出到文件的脚本[关闭]
【发布时间】:2012-12-18 22:01:06
【问题描述】:

我正在寻找一个脚本(batch、perl、vb 或其他),它将我将提供给它的主机名解析为 IPS,并与它们一起输出一个文件(可选),就像 Windows 主机文件一样。

例如,当我给它时:www.stackoverflow.com

它将输出到文件(甚至在屏幕中,带有回显)这一行:

69.59.197.21 www.stackoverflow.com

提前致谢!新年快乐! 干杯

【问题讨论】:

  • 在 linux 中你可以试试这个:> 主机 www.stackoverflow.com | grep “有”
  • 谢谢,但这将输出“www.stackoverflow.com 的地址为 69.59.197.21”。有什么方法可以获得“69.5​​9.197.21 是 www.stackoverflow.com 的地址”的输出,所以我可以批量删除“是地址”并将其用作 Windows 上的主机文件?

标签: batch-file ip hostname resolve


【解决方案1】:

给你

@echo off
setlocal enabledelayedexpansion
set /p hostname=Enter hostname: 
for /f "tokens=3" %%a in ('ping %hostname% ^| find "Pinging"') do (
set ip=%%a
set ip=!ip:[=!
set ip=!ip:]=!
echo !ip! %hostname%
)
pause >nul

【讨论】:

  • 谢谢巴厘岛 C!我注意到许多网站在不同的 ip 上使用子域。有没有办法通过浏览器浏览站点并以适合主机文件格式的方式导出 dns 缓存?我试过 ipconfig /displaydns >C:\test.txt 工作正常,但输出不适合主机
  • 抱歉,我没看懂第二部分。那么ipconfig /displaydns 中是否有您想要提取的特定部分?
  • 另外,@user1948608 如果您喜欢 Bali 的回答,如果您点击旁边的支票并将其归功于他,这将对他有所帮助!谢谢!
【解决方案2】:

你可以在linux中试试这个

**print address and hostname**

    [user@server scripts]$ host www.stackoverflow.com | grep "has add" | awk '{print $1}{print $4}' 
    stackoverflow.com
    69.59.197.21

**Print address only**

    [user@server scripts]$ host www.stackoverflow.com | grep "has add" | awk '{print $4}' 
    69.59.197.21


**Append To File**

    [user@server scripts]$ host www.stackoverflow.com | grep "has add" | awk '{print $4}' >> hosts.list

希望这会有所帮助(在 *nix 中)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-19
    • 2016-04-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多