一、批量查询域名解析shell脚本
1、先配置好DNS:
# cat /etc/resolv.conf
nameserver 114.114.114.114
2、在Linux安装nslookup命令:
yum install -y bind-utils
3、输入参数为一个文件,文件里面是域名列表,输出为IP和域名的键值对
[root@node2 data]# cat yuming.txt
www.baidu.com
www.powerdns.com
[root@node2 data]# chmod +x jiexi.sh
[root@node2 data]# ./jiexi.sh yuming.txt
www.baidu.com www.a.shifen.com.
www.powerdns.com 188.166.104.92
[root@node2 data]# cat jiexi.sh
#!/bin/bash
function lookupSingleIp(){
for ip in $@;
do
[[ -z $ip ]] && continue;
panduan=`nslookup $ip | egrep 'name.*='`
if [ ! -z $panduan ]; then
domain=`nslookup $ip | egrep 'name.*=' | awk '{if(NR==1) print $NF}'` #查询cname地址,如果只需查询IP地址可屏蔽这一句,使用下面的方法
else
domain=`nslookup $ip | egrep 'Address:' | awk '{if(NR==2) print $NF}'` #查询IP地址
fi
echo "$ip $domain"
done
}
cat $1 | while read line
do
[[ -n $line ]] && lookupSingleIp $line;
done
二、批量查询域名解析python查询
[root@node2 data]# python pyjiexi.py
[root@node2 data]# cat result.txt
www.baidu.com 115.239.210.27
www.powerdns.com 188.166.104.92
[root@node2 data]# cat pyjiexi.py
#!/usr/bin/env python
#coding:utf-8
from socket import gethostbyname
DOMAIN= "yuming.txt"
with open(DOMAIN,'r') as f:
for line in f.readlines():
try:
host = gethostbyname(line.strip('\n')) #域名反解析得到的IP
except Exception as e:
with open('error.txt','a+') as ERR: #error.txt为没有IP绑定的域名
ERR.write(line.strip()+ '\n')
else:
with open('result.txt','a+') as r: #result.txt里面存储的是批量解析后的结果
r.write(line.strip('\n') + ' ') #显示有ip绑定的域名,用空格隔开
r.write(host + '\n')