安装Net::DNS模块

perl -MCPAN -e "install Net::DNS"

模拟脚本

#!/usr/bin/perluse Net::DNS::Nameserver;
use strict;
use warnings;sub reply_handler {my ($qname, $qclass, $qtype, $peerhost,$query,$conn) = @_;my ($rcode, @ans, @auth, @add);print "Received query from $peerhost to ". $conn->{"sockhost"}. "\n";$query->print;if ($qtype eq "A" && $qname eq "www.ddos.com" ) {my ($ttl, $rdata) = (3600, "10.1.2.3");#push @ans, Net::DNS::RR->new("$qname $ttl $qclass $qtype $rdata");push @ans, Net::DNS::RR->new("www.ddos.com 0 IN CNAME guard.ddos.com");$rcode = "NOERROR";}elsif( $qname eq "www.ddos.com" ) {$rcode = "NOERROR";}else{$rcode = "NXDOMAIN";}# mark the answer as authoritive (by setting the 'aa' flagreturn ($rcode, \@ans, \@auth, \@add, { aa => 1 });
}my $ns = Net::DNS::Nameserver->new(LocalPort    => 53,ReplyHandler => \&reply_handler,Verbose      => 1,) || die "couldn't create nameserver object\n";$ns->main_loop;

执行脚本

perl -w srv.pl

使用Net::DNS CPAN模块模拟一个DNS CNAME应答记录相关推荐

  1. 引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应

    引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应 ...

  2. Python学习笔记-DNS处理模块dnspython

    DNS处理模块dnspython     dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消 ...

  3. Python自动化运维——DNS处理模块

    模块:dnspython 功能: 支持所有的记录类型 可以用于查询.传输并动态更新ZONE信息 支持TSIG(事务签名)验证消息和EDNS0(扩展DNS) 安装: wget http://www.dn ...

  4. Lync Server外部访问系列PART5:模拟公网DNS

    因为要实现外部用户访问,所以我们必然需要在公网DNS中添加我们所需要的一些A记录,而这样的测试需要我们拥有一个公网的域名以及一个可发布.可访问的IP.如果没有的话就没办法这样测试,所以我们今天在物理局 ...

  5. 用 Node.js 手写一个 DNS 服务器

    DNS 是实现域名到 IP 转换的网络协议,当访问网页的时候,浏览器首先会通过 DNS 协议把域名转换为 IP,然后再向这个 IP 发送 HTTP 请求. DNS 是我们整天在用的协议,不知道大家是否 ...

  6. python中dns库用法详解(DNS处理模块)

    dnspython是python 实现的一个dns场景的工具包. dnspython(http://www.dnspython.org/)是Python实现的一个DNS工具包,它支持几乎所有的记录类型 ...

  7. DIY一个DNS查询器:了解DNS协议

    每当我们在浏览器上敲入任何一个域名访问某个网站的时候,我们都要使用Dns协议进行一次"域名:IP"的查询;作为命令行使用者,与dns有关用的最多的就是Nslookup 命令吧:作为 ...

  8. DNS Tunneling及相关实现——总之,你发起攻击都需要一个DNS server,下载一些工具作为client发起数据,server收集数据并响应...

    摘自:http://www.freebuf.com/sectool/112076.html DNS Tunneling,是隐蔽信道的一种,通过将其他协议封装在DNS协议中传输建立通信.因为在我们的网络 ...

  9. DNS 截持模拟及环境搭建

    部署概述 下面是 DNS 截持模拟的网络部署状态图. 这里的 DNS 服务器是配置在主机 172.16.2.51 上的,DNS 服务器上针对 www.baidu.com 的域名进行重定向.另外有两台 ...

  10. 树莓派做一个dns缓存

    树莓派做一个dns缓存 还是转载的别人的, 搭建树莓派上的dns缓存服务首先安装dnsmasq, sudo apt install dnsmasq 之后修改配置文件 vim /etc/dnsmasq. ...

最新文章

  1. c#书写规范之---注释
  2. 不正确 有三种形式 说法 通配泛型_一看就懂 详解JAVA泛型通配符T,E,K,V区别...
  3. 快速排序与合并排序的分而治之
  4. CSAPP lab2 二进制拆弹 binary bombs phase_6
  5. js 数组遍历符合条件跳出循环体_Javascript数组循环遍历之forEach详解
  6. exchange邮件中继服务器搭建,使用 Exchange 2010 传输中继应用程序服务器 SMTP 通信...
  7. 金泰联限量稳定虚拟主机赞助计划
  8. [BUUCTF-pwn]——ciscn_2019_sw_1
  9. LeetCode 1093. 大样本统计
  10. 算法复习第五章贪心法
  11. 『转』度百死去飞秋一个BUG引发的血案
  12. CentOS7设置环境变量
  13. 软件设计师23-存储器系统02
  14. C#自定义数字格式字符串
  15. mac版有道云笔记切换笔记后内容仍展示前一个笔记内容问题解决
  16. 浮动介绍和定位注意点
  17. 从0开始学习 GitHub 系列之「Git 进阶」
  18. Swift给每个开发者赢取500万的机会!不看一生后悔。
  19. vfp程序设计和c语言6,VFP程序设计总结
  20. Oracle DBA 路途遥远

热门文章

  1. [Android] 图片JNI(C++\Java)高斯模糊 多线程
  2. Luogu1904 天际线
  3. Code[VS]1997 守卫者的挑战
  4. js高级学习笔记(b站尚硅谷)-2-数据、变量、内存三者的关系
  5. Windows查看计算机服务监听的端口号
  6. CentOS7安装Oracle11.2.0.4
  7. 第一台计算机 采用工 作原理,第1讲计算机工作原理模版课件.ppt
  8. python数据插补_Python直线插补
  9. 使用kubeadm搭建的k8s集群修改node节点主机名
  10. 产品id 关联 分类id mysql_MySQL的多表联查