使用Net::DNS CPAN模块模拟一个DNS CNAME应答记录
安装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应答记录相关推荐
- 引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应
引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应 ...
- Python学习笔记-DNS处理模块dnspython
DNS处理模块dnspython dnspython是python实现的一个DNS工具包,它支持几乎所有的记录类型,可以用于查询.传输并动态更新ZONE信息,同时支持TSIG(事务签名)验证消 ...
- Python自动化运维——DNS处理模块
模块:dnspython 功能: 支持所有的记录类型 可以用于查询.传输并动态更新ZONE信息 支持TSIG(事务签名)验证消息和EDNS0(扩展DNS) 安装: wget http://www.dn ...
- Lync Server外部访问系列PART5:模拟公网DNS
因为要实现外部用户访问,所以我们必然需要在公网DNS中添加我们所需要的一些A记录,而这样的测试需要我们拥有一个公网的域名以及一个可发布.可访问的IP.如果没有的话就没办法这样测试,所以我们今天在物理局 ...
- 用 Node.js 手写一个 DNS 服务器
DNS 是实现域名到 IP 转换的网络协议,当访问网页的时候,浏览器首先会通过 DNS 协议把域名转换为 IP,然后再向这个 IP 发送 HTTP 请求. DNS 是我们整天在用的协议,不知道大家是否 ...
- python中dns库用法详解(DNS处理模块)
dnspython是python 实现的一个dns场景的工具包. dnspython(http://www.dnspython.org/)是Python实现的一个DNS工具包,它支持几乎所有的记录类型 ...
- DIY一个DNS查询器:了解DNS协议
每当我们在浏览器上敲入任何一个域名访问某个网站的时候,我们都要使用Dns协议进行一次"域名:IP"的查询;作为命令行使用者,与dns有关用的最多的就是Nslookup 命令吧:作为 ...
- DNS Tunneling及相关实现——总之,你发起攻击都需要一个DNS server,下载一些工具作为client发起数据,server收集数据并响应...
摘自:http://www.freebuf.com/sectool/112076.html DNS Tunneling,是隐蔽信道的一种,通过将其他协议封装在DNS协议中传输建立通信.因为在我们的网络 ...
- DNS 截持模拟及环境搭建
部署概述 下面是 DNS 截持模拟的网络部署状态图. 这里的 DNS 服务器是配置在主机 172.16.2.51 上的,DNS 服务器上针对 www.baidu.com 的域名进行重定向.另外有两台 ...
- 树莓派做一个dns缓存
树莓派做一个dns缓存 还是转载的别人的, 搭建树莓派上的dns缓存服务首先安装dnsmasq, sudo apt install dnsmasq 之后修改配置文件 vim /etc/dnsmasq. ...
最新文章
- c#书写规范之---注释
- 不正确 有三种形式 说法 通配泛型_一看就懂 详解JAVA泛型通配符T,E,K,V区别...
- 快速排序与合并排序的分而治之
- CSAPP lab2 二进制拆弹 binary bombs phase_6
- js 数组遍历符合条件跳出循环体_Javascript数组循环遍历之forEach详解
- exchange邮件中继服务器搭建,使用 Exchange 2010 传输中继应用程序服务器 SMTP 通信...
- 金泰联限量稳定虚拟主机赞助计划
- [BUUCTF-pwn]——ciscn_2019_sw_1
- LeetCode 1093. 大样本统计
- 算法复习第五章贪心法
- 『转』度百死去飞秋一个BUG引发的血案
- CentOS7设置环境变量
- 软件设计师23-存储器系统02
- C#自定义数字格式字符串
- mac版有道云笔记切换笔记后内容仍展示前一个笔记内容问题解决
- 浮动介绍和定位注意点
- 从0开始学习 GitHub 系列之「Git 进阶」
- Swift给每个开发者赢取500万的机会!不看一生后悔。
- vfp程序设计和c语言6,VFP程序设计总结
- Oracle DBA 路途遥远
热门文章
- [Android] 图片JNI(C++\Java)高斯模糊 多线程
- Luogu1904 天际线
- Code[VS]1997 守卫者的挑战
- js高级学习笔记(b站尚硅谷)-2-数据、变量、内存三者的关系
- Windows查看计算机服务监听的端口号
- CentOS7安装Oracle11.2.0.4
- 第一台计算机 采用工 作原理,第1讲计算机工作原理模版课件.ppt
- python数据插补_Python直线插补
- 使用kubeadm搭建的k8s集群修改node节点主机名
- 产品id 关联 分类id mysql_MySQL的多表联查