LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1022|回复: 0

dns批量解析格式化输出--该如何完善,请赐教

[复制链接]
发表于 2008-2-29 17:42:46 | 显示全部楼层 |阅读模式
通过dig命令从文件dsname(该文件一行为一个域名)查询域名的a,mx,ns记录并格式化输出到excle表格,希望有高手提点如何完善,如当a记录的ip有多个时,每个ip换行输出。

dig命令查询ns记录输出格式如下
  1. [root@xt ~]# dig tom.com NS

  2. ; <<>> DiG 9.2.4 <<>> tom.com NS
  3. ;; global options:  printcmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35402
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 2

  7. ;; QUESTION SECTION:
  8. ;tom.com.                       IN      NS

  9. ;; ANSWER SECTION:
  10. tom.com.                2376    IN      NS      ns1.tom.com.
  11. tom.com.                2376    IN      NS      ns2.tom.com.
  12. tom.com.                2376    IN      NS      ns3.tom.com.
  13. tom.com.                2376    IN      NS      ns4.tom.com.

  14. ;; ADDITIONAL SECTION:
  15. ns3.tom.com.            2376    IN      A       211.100.41.31
  16. ns4.tom.com.            2376    IN      A       211.100.41.31

  17. ;; Query time: 14 msec
  18. ;; SERVER: 192.168.1.230#53(192.168.1.230)
  19. ;; WHEN: Fri Feb 29 03:30:41 2008
  20. ;; MSG SIZE  rcvd: 129
复制代码


dig命令查询mx记录输出格式如:
  1. [root@xt ~]# dig tom.com MX

  2. ; <<>> DiG 9.2.4 <<>> tom.com MX
  3. ;; global options:  printcmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14017
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 2

  7. ;; QUESTION SECTION:
  8. ;tom.com.                       IN      MX

  9. ;; ANSWER SECTION:
  10. tom.com.                2092    IN      MX      10 tommx.163.net.

  11. ;; AUTHORITY SECTION:
  12. tom.com.                2088    IN      NS      ns4.tom.com.
  13. tom.com.                2088    IN      NS      ns1.tom.com.
  14. tom.com.                2088    IN      NS      ns2.tom.com.
  15. tom.com.                2088    IN      NS      ns3.tom.com.

  16. ;; ADDITIONAL SECTION:
  17. ns3.tom.com.            2088    IN      A       211.100.41.31
  18. ns4.tom.com.            2088    IN      A       211.100.41.31

  19. ;; Query time: 17 msec
  20. ;; SERVER: 192.168.1.230#53(192.168.1.230)
  21. ;; WHEN: Fri Feb 29 03:35:30 2008
  22. ;; MSG SIZE  rcvd: 158
复制代码



dig命令查询a记录输出格式如下
  1. [root@xt ~]# dig tom.com A

  2. ; <<>> DiG 9.2.4 <<>> tom.com A
  3. ;; global options:  printcmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6527
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 2

  7. ;; QUESTION SECTION:
  8. ;tom.com.                       IN      A

  9. ;; ANSWER SECTION:
  10. tom.com.                2200    IN      A       202.108.12.68

  11. ;; AUTHORITY SECTION:
  12. tom.com.                2200    IN      NS      ns1.tom.com.
  13. tom.com.                2200    IN      NS      ns2.tom.com.
  14. tom.com.                2200    IN      NS      ns3.tom.com.
  15. tom.com.                2200    IN      NS      ns4.tom.com.

  16. ;; ADDITIONAL SECTION:
  17. ns3.tom.com.            2200    IN      A       211.100.41.31
  18. ns4.tom.com.            2200    IN      A       211.100.41.31

  19. ;; Query time: 22 msec
  20. ;; SERVER: 192.168.1.230#53(192.168.1.230)
  21. ;; WHEN: Fri Feb 29 03:33:37 2008
  22. ;; MSG SIZE  rcvd: 145
复制代码




本人脚本如下:


  1. #!/bin/bash
  2. h="+"
  3. #for line in `cat dsname`
  4. #for line in `cat dsname`
  5. echo "domain"$h"a"$h"mx"$h"ns">/home/xiutuo/dnsdeng.txt
  6. cat dsname | while read line
  7. do
  8. #echo $line
  9. a=`dig $line A | grep -v ';' | grep A | awk '{print $5}'`
  10. mx=`dig $line MX | grep -v ';' | grep MX | awk '{print $6}'`
  11. ns=`dig $line NS | grep -v ';' | grep NS | awk '{print $5}'`
  12. echo $line$h$a$h$mx$h$ns >>/home/xiutuo/dnsdeng.txt
  13. done
复制代码


运行脚本后可输出分割符号为+的相关记录。


谢谢各位大侠的赐教
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表