shell脚本查看域名解析
时间: 2023-12-27 11:25:46 浏览: 37
以下是一个示例的shell脚本,用于查看域名解析:
```shell
#!/bin/bash
# 检查参数数量
if [ $# -lt 2 ]; then
echo "Usage: $0 <DNS1> <DNS2> [<DNS3>] <domain_file>"
exit 1
fi
# 获取参数
DNS1=$1
DNS2=$2
DNS3=$3
DOMAIN_FILE=$4
# 检查域名文件是否存在
if [ ! -f $DOMAIN_FILE ]; then
echo "Domain file not found: $DOMAIN_FILE"
exit 1
fi
# 逐行解析域名
while read -r domain; do
echo "Resolving $domain..."
result=$(nslookup $domain $DNS1 | grep "Address:" | awk '{print $2}')
if [ -z "$result" ]; then
result=$(nslookup $domain $DNS2 | grep "Address:" | awk '{print $2}')
fi
if [ -z "$result" ] && [ ! -z "$DNS3" ]; then
result=$(nslookup $domain $DNS3 | grep "Address:" | awk '{print $2}')
fi
if [ -z "$result" ]; then
echo "Failed to resolve $domain"
else
echo "Resolved $domain to $result"
fi
done < $DOMAIN_FILE
```
使用方法:
1. 将上述脚本保存为dns_get.sh文件。
2. 在终端中运行以下命令:
```shell
chmod +x dns_get.sh
./dns_get.sh <DNS1> <DNS2> [<DNS3>] <domain_file>
```
其中,`<DNS1>`、`<DNS2>`和`<DNS3>`是要使用的DNS服务器的IP地址,`<domain_file>`是包含要解析的域名列表的文本文件的路径。
注意事项:
1. 域名文件中每行应该只包含一个域名。
2. 如果域名文件和脚本文件不在同一目录,需要使用绝对路径指定域名文件的路径。