首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >PTR解析记录理解与用途

PTR解析记录理解与用途

作者头像
yumusb
发布2020-04-22 10:15:20
发布2020-04-22 10:15:20
3.2K0
举报
文章被收录于专栏:坏男孩坏男孩

前一阵子看到一个思路,说是使用php判断百度爬虫的真假性 关键代码如下

代码语言:javascript
复制
if (strpos($访问UA, 'baiduspider') !== false){
		$解析主机 = gethostbyaddr($_SERVER['REMOTE_ADDR']);
		if ($解析主机 != 'baiduspider-'.$访问主机.'.crawl.baidu.com') 
			return false;
	}

百思不得解 其中 gethostbyaddr 是怎么来的,什么原理。今天了解了PTR解析记录才明白是怎么一回事。


平常解析域名用的最多的应该就是A(AAAA)/CNAME类型了,其他的很少用到,也很少了解到。今天就说一下 我对PTR记录的理解。

百度百科中写到: PTR (Pointer Record),指针记录,是电子邮件系统中的一种数据类型,被互联网标准文件RFC1035所定义。与其相对应的是A记录、地址记录。二者组成邮件交换记录。

所以可以粗糙的理解为, PTR是A记录的反向,可以通过IP地址查到对应的域名记录。而拥有这个权限的是ISP(互联网服务提供商),只有向ISP申请才能实现PTR解析。

在php中,可以使用 gethostbyaddr 函数来进行查询; 在Linux下,可以通过 host 1.1.1.1 直接查询,或者 host -t PTR 1.1.1.1 来查询; 也可以通过 nslookup 1.1.1.1 来查询。


有了这个 就可以查询到底是真的蜘蛛还是假的蜘蛛啦。

代码语言:javascript
复制
[email protected]:~/Desktop$ nslookup 203.208.60.21
21.60.208.203.in-addr.arpa	name = crawl-203-208-60-21.googlebot.com.

Authoritative answers can be found from:
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档