代码之家  ›  专栏  ›  技术社区  ›  Hind Forsum

如何从机器名请求IPv4地址?

  •  0
  • Hind Forsum  · 技术社区  · 8 年前

    在我的linux集群中,我有一堆主机名,而我的网络管理日志显示ip地址(它们有时会根据dns而改变)。

    我的问题是:如何快速找到某个主机名的ipv4,而不使用“ping xxxxx”来获取ip地址,并使用Ctrl+c来阻止它。我想写一个简单的脚本如下:

    myCommand hostname1
    myCommand hostname2
    myCommand hostname3
    myCommand hostname4
    myCommand hostname5
    

    这将为我打印主机名到IP地址的映射(对于主机名1-5)

    那么,如何编写这个“myCommand”命令或shell脚本呢? 谢谢

    2 回复  |  直到 8 年前
        1
  •  3
  •   Ruslan Osmanov    8 年前

    使用 host 工具来自 bind-tools :

    $ host -4 -t A stackoverflow.com
    stackoverflow.com has address 151.101.129.69
    stackoverflow.com has address 151.101.1.69
    stackoverflow.com has address 151.101.193.69
    stackoverflow.com has address 151.101.65.69
    

    dig 来自同一软件包的工具:

    $ dig -4 -t A stackoverflow.com +short
    151.101.129.69
    151.101.1.69
    151.101.193.69
    151.101.65.69
    
        2
  •  2
  •   Harald Nordgren    8 年前
    #!/usr/bin/env bash
    
    function get_ip {
        echo $1
        getent hosts $1 | awk '{ print $1 }' | sed 's/^/  /g'
        echo
    }
    

    用法:

    get_ip unix.stackexchange.com
    get_ip hostname1
    get_ip hostname2