单个获取

编写角本pingip.sh

#!/bin/sh

ADDR=qq.com
TMPSTR=`ping ${ADDR} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'`
echo ${TMPSTR}
echo ${TMPSTR} >> 666.txt

执行结果

haima@haima-PC:~/Desktop$ sh pingip.sh 
58.250.137.36

批量获取

思路:
从文件里循环读取每行域名,然后获取,输出到文件里

新建domain_list.txt文件

qq.com
baidu.cn

留言个空行,否则读到最后一行域名

编写角本代码pingip_batch.sh

#!/bin/bash

filename=domain_list.txt # 要读取的文件
proc_cnt=0 # 计数器

cat $filename | while read LINE # 循环读取
do
  echo ""
  proc_cnt=`expr $proc_cnt + 1`
  echo "processing  $proc_cnt   $LINE"
  dumpstring=`ping ${LINE} -c 1 | sed '1{s/[^(]*(//;s/).*//;q}'`
  echo ""
  echo $dumpstring
  echo $dumpstring >> domain_list-resp.txt
  sleep 0.05
done

执行

haima@haima-PC:~/Desktop/获取ip$ sh pingip_batch.sh

processing  1   qq.com

58.250.137.36

processing  2   baidu.cn

220.181.38.148

输出文件:

SHELL脚本获取域名对应的IP地址_txt文件