IP rDNS(PTR)信息从理解到情报挖掘
什么是IP的rdns信息?
过去很多人,将IP的rDNS信息理解为解析到IP的反查域名信息。IP的rDNS信息和IP反查域名信息完全是两个不同的信息。IP的rdns信息被称之为反向DNS解析(rDNS),即通过DNS解析系统来将IP地址解析为域名。根据RFC1912标准“每一个互联网可以访问的主机都应该有一个名字”,所以rDNS信息更多是对应到一个IP地址的名字。IP的反查域名是指根据域名解析到IP的记录来反查出哪些域名解析到这个IP地址上。下面以8.8.8.8来说明IP的反查信息和rDNS信息的区别。
通过命令nslookup可以直接获取到8.8.8.8的rDNS信息”dns.google.”,注意此处被标识为名称(name),即表示为IP的名称。

通过virustotal平台查询8.8.8.8的IP反查信息,可以得到下图红框中10个域名是解析到8.8.8.8上的。IP反查的结果是域名A记录指向该IP的域名信息集合。


IP的rDNS是如何工作的?
PTR记录
IP的rDNS信息本质上是IP地址的一个name信息。那这个信息是由谁在哪里设置的呢?在通过nslookup获取一个IP的rDNS信息请求时,本质上是发起了一个DNS请求,来获取一个IP的PTR解析记录。我们都知道DNS协议是域名解析协议,是用来解析协议的,那么如何能用来解析IP呢?这里要提到一个很牛的设计,为了能够通过DNS协议来解析到IP的rDNS信息,ICANN组织新增了一个tld(通用顶级域)“.arpa.”用来负责将IP映射为域名,支持rDNS协议和其他网络基础构架的管理工作。

IP地址”4.3.2.1”映射转换之后的域名为1.2.3.4.in-addr.arpa.,IP地址114.114.115.115映射转换之后的域名为115.115.114.114.in-addr.arpa。然后通过DNS协议查询该域名的PTR记录就能够获得该IP的rDNS值,这个查询出来的值和nslookup命令查询出来的值是一样的。


IP rDNS的权威DNS
我们都知道DNS协议中,每个域名都有对应的权威DNS服务器,用来维护这个域名的A记录、CNAME记录值等。在IP rDNS记录也是一样存在着权威DNS服务器。IP地址经过转换之后就是一个特殊的域名。下面我们来分别看一下各级域名对应的权威DNS服务器。
下面各图就IP rDNS转换域名之后的各级权威DNS服务器进行了解析尝试发现,114.114这样的B段就配置了中国的DNS服务器,前面114这样的A段地址展示了全球五大RIR的权威DNS服务器,再往前的特殊域arpa.和in-addr.arpa.都在icann手上进行维护。这里可以做一个有趣的推论,全球的IP地址分配单位可能是按照B段来进行分配的。另外114.114.115这样的C段是没有查询到权威NS服务器的,由此也可以做一个有趣的推论,实际注册了IP网段的单位设定的权威DNS服务器可能不是严格按照C段来设定的。从方便的管理角度来看,按照C段更方便做 IP转化为域名的映射的管理,但实际上并没有这么分配,也就是国内注册IP的单位也不是严格按照C段来进行注册的。

arpa.的权威DNS服务器:

in-addr.arpa.的权威DNS服务器:

114.in-addr.arpa.的权威DNS服务器:

114.114.in-addr.arpa.的权威DNS服务器:

114.114.115.in-addr.arpa.的权威DNS服务器:

如何快速获得所有IPv4的rDNS数据:
向公共DNS发起全网IP的PTR DNS解析
将所有的IP转化为域名之后,对公共DNS发起PTR的解析记录请求查询,这样的方法理论上是可行的。但是全球IPv4的地址大概有42亿,去除掉保留地址和一些特殊的IP地址之后,应该还有35亿左右,这个量可能会因为网络解析请求量过大,导致请求被拒绝,以致无法全面和准确的获得IP的rDNS信息。
向权威DNS发起PTR解析
由于公共DNS的数量和承载性能有限制,首先获得一个IP地址的rDNS域名对应的权威DNS,然后在向这个权威DNS服务器发起查询请求,这样能够将请求分散到不同的权威DNS服务器,降低并发太高的问题。但是仍然还会面临实际的请求数据量过于庞大的问题。下图展示了获取114.114.114.114的权威DNS服务器的过程:
上级域名“114.114.114.in-addr.arpa.”没有配置权威DNS服务器:

上上级域名“114.114.in-addr.arpa”配置了权威DNS服务器:

向上上级域名的权威DNS服务器发起PTR解析请求,注意看此处返回了授权区域(“AUTHORITY SECTION”)没有返回具体的ANSWER。这规定了该域名的rDNS记录应该去对应的权威DNS服务器(ns100.114dns.net)上去查询。

再次向该域名的权威DNS服务器发起PTR记录查询请求,成功获取到rDNS记录:

根据上面这几个步骤来看,向权威DNS发起请求,获取rDNS记录的过程比直接向公共dns发起解析请求慢很多,因为中间可能会多了一步或者多步。整体上来看也不能很好的解决快速获取rDNS数据的问题。
按需积累IP的rDNS解析数据
无论哪种方式,要瞬间获得42亿IP的rdns信息都会比较困难。所以按照实际的业务需求对出现的部分业务优先级高的IP通过网络发包获得rdns信息,然后不断的积累,预期能够获得更多的rdns数据。
使用开源的rDNS数据。
网络安全公司Rapid7下属的一个sonar实验室,会定期对全网进行IPv4 的rdns信息探测收集。收集完成之后,会对外提供下载地址。这也是一个重要的数据来源通道。

情报生产应用
生产白名单
所有IP映射为域名之后的各级权威DNS服务器,都是可以用来转化为DNS服务器、用来做白名单数据的;
识别IP用途
很多机构为了让外部知道自己IP是做什么用途的,会在IP的rDNS信息上声明相关的信息。比如百度的爬虫就是根据rDNS信息来判断是否为百度的爬虫。


根据rDNS信息判断IP是否为家庭宽带IP


判断IP是否属于动态IP
该IP属于河南电信的动态IP:

该IP属于上海电信IP:

参考链接:
https://opendata.rapid7.com/sonar.rdns_v2/
https://help.baidu.com/question?prod_id=99&class=476&id=2996
IP rDNS(PTR)信息从理解到情报挖掘的更多相关文章
- PHP获取IP及地区信息(纯真IP数据库)
昨天在写程序的时候,发现在用户的时候记录IP和地区信息也许以后用得上,去网上找了找,发现实现的方式有好多好多,因为我用的ThinkPHP,后来又去TP官网找了找,最后采用了下面这种方法. <?p ...
- tomcat正常启动,但IP不能访问web。ping IP地址,一直超时。 用ipconfig命令修复TCP/IP的配置信息
今天遇到一个好奇葩的问题 好吧是昨天遇到的一直没找到解决办法(`へ´) tomcat正常启动,但是通过IP不能访问web 用IP地址就是不行 (:′⌒`) 打不开 localhost就可以 ...
- 如何根据Ip获取地址信息--Java----待整理完善!!!
如何根据Ip获取地址信息--Java----待整理完善!!! QQWry.dat数据写入方法: http://www.cnblogs.com/xumingxiang/archive/2013/02/1 ...
- NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息
NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息.也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读.Netflo ...
- [日志分析]Graylog2进阶之获取Nginx来源IP的地理位置信息
如果你们觉得graylog只是负责日志收集的一个管理工具,那就too young too naive .日志收集只是graylog的最最基础的用法,graylog有很多实用的数据清洗和处理的进阶用法. ...
- TCP/IP网络协议的通俗理解,SOCKET,HTTP,SOAP
TCP/IP,HTTP,SOAP等协议之区别 术语TCP/IP代表传输控制协议/网际协议,指的是一系列协议.“IP”代表网际协议,TCP和UDP使用该协议从一个网络传送数据包到另一个网络.把IP想 ...
- ASP.NET获取客户端IP/用户名等信息
1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostN ...
- TCP/IP和HTTP的举例理解
闲暇中逛博客园,看到TCP/IP和HTTP关键词,就突然想深刻理解他们(以前真的是只知皮毛),于是看了关于TCP/IP和HTTP的博文,就有了此文. 首先要引出开放系统互连参考模型(OSI:Open ...
- 通过GeoIP2分析访问者IP获取地理位置信息
原文链接:http://blog.csdn.net/johnnycode/article/details/42028841 MaxMind GeoIP2 服务能识别互联网用户的地点位置与其他特征,应用 ...
- 淘宝IP地址库API接口(PHP)通过ip获取地址信息
淘宝IP地址库网址:http://ip.taobao.com/ 提供的服务包括: 1. 根据用户提供的IP地址,快速查询出该IP地址所在的地理信息和地理相关的信息,包括国家.省.市和运营商. 2. 用 ...
随机推荐
- mongoDB日常操作03
MongoDB中导出csv文件1.找到mongoDB的安装目录,bin目录2.通过控制台进入bin目录 例: cd E:\java\mongoDB\bin\3.测试mongo.exe能否运行 例: ...
- windows 系统的端口问题
netstat -ano 列出所有正在使用的端口netstat -aon|findstr "4300" 查询占用该端口的PIDtasklist|findstr "4464 ...
- host头攻击
一.问题源起 HTTP1.1规范中在增加了HOST头信息,用于存储服务端与客户端的路由信息. 例如: Request的Header里就有一个标名请求,它是用来记录服务端网站域名的. 如果前端或者后台正 ...
- 逆向学习物联网-网关ESP8266-00课程目的
- Web实时通信之SignalR
前言 对于B/S模式的项目,基础的场景都是客户端发起请求,服务端返回响应结果就结束了一次连接:但在很多实际应用场景中,这种简单的请求和响应模式就显得很吃力,比如消息通知.监控看板信息自动刷新等实时通信 ...
- SQL-分组聚合-子查询
-- having前面必须有group byselect e.deptno ,sum(e.sal) as sum_sal ,min(e.sal) as min_sal ,max(e.sal) as m ...
- 关于JDK1.8 java HashMap的tableSizeFor的解析:一个数最近2的幂次数方法
简介 一个数的最近2的幂次数,是java hashmap初始化方法指定容量里面对容量进行处理采用的方法 1.位运算符号介绍 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两 ...
- 解决word表格中文字无法居中的一个方法
情况:试过许多方法,如表格属性->单元格居中:表格布局中的居中对齐都无效:虽然利用段落中的单倍行距可以实现居中效果,但我不想单倍行距. 原因:有时候我们表格上下行距比较大,而使用居中的按钮只能让 ...
- 使用LitJson输出格式化json文件到本地
百度上搜了半天,竟然没有C#使用LitJson格式化输出的例子,全都是Newtonsoft.Json的,最后在litjson的官网找到了方法. 给大家分享一下: https://litjson.net ...
- iOS自动化测试
学习步骤: 1.能够搭建iOS自动化测试所需要的环境 2.能够使用模拟器进行iOS自动化测试 3.能够使用真机进行iOS自动化测试 一.环境搭建 应用场景 想要进行iOS自动化测试,前提条件需要进行环 ...