php 能不能以客户端身份获取某个网站的 ip 地址

2015-04-07 00:42:48 +08:00
 holinhot

目地为了测试客户的dns是否正常
比如客户ip 1.1.1.1
要测试的域名www.qq.com 2.2.2.2
然后我写个测试页面www.testqq.com/test.php 客户访问这个页面然后可以在页面显示www.qq.com解析的ip(以用户的身份和dns请求解析得到的ip)

3841 次点击
所在节点    DNS
17 条回复
kukat
2015-04-07 00:52:29 +08:00
php 可以用 gethostbyname()

客户端你咋取得 dns 解析的 ip?

另外,因为 cdn 之类的原因,不同地方,不同网络环境解析的 ip 会不同的
holinhot
2015-04-07 01:08:31 +08:00
@kukat gethostbyname() 是以客户的身份请求还是 以服务器身份请求
holinhot
2015-04-07 01:26:21 +08:00
@kukat 测试了,是以用户的身份解析的
Puteulanus
2015-04-07 04:07:12 +08:00
在网上看到个解决思路

自建一个NS服务器,用它解析自己的一个域名(比如abc.com
PHP输出的时候,带上一个上面域名随机的子域名的资源(比如dshfjdsfsdf.abc.com/test.jpg)
从NS的log里提取出客户的DNS对这个子域名(dshfjdsfsdf.abc.com)的解析请求
Livid
2015-04-07 04:08:22 +08:00
五楼的方法是目前各大 CDN 的查错网站常用的方法。
Anybfans
2015-04-07 08:30:15 +08:00
@Livid 。。你是5楼。哈哈哈哈
lafirel
2015-04-07 09:05:03 +08:00
@Livid 一种天然呆萌的感觉
yylzcom
2015-04-07 09:19:22 +08:00
啊?难道不是因为屏蔽了某人而livid没屏蔽,所以出现楼层不同的情况?
NewYear
2015-04-07 09:48:55 +08:00
@Anybfans 看到五楼的发言,一下子感觉到了糗事百科。
@yylzcom 不是
JohnChu
2015-04-07 09:55:05 +08:00
@Livid 5楼的方法不错
Anybfans
2015-04-07 10:26:53 +08:00
@yylzcom 我没屏蔽人呀。。。估计是Livid天然呆。哈哈哈
fork3rt
2015-04-07 11:00:29 +08:00
@Livid L大乱入
caola
2015-04-07 11:13:05 +08:00
你可以试试 dns_get_record() checkdnsrr() 这两个函数,
或者 system() exec() 直接调用系统命令去查吧!
linescape
2015-04-07 11:49:26 +08:00
php跑在服务器端,明显能以从访客的IP去某指定dns上获取一个域名的解析记录吧
倒是浏览器如果有这样的api则能用js实现
fxxkgw
2015-04-07 18:14:24 +08:00
@Puteulanus 这个是获取客户端的DNS的方法吧 通过sessionID构造URL,然后在自己的named服务器上解析,通过log得到客户端的出口DNS。
fxxkgw
2015-04-07 18:16:19 +08:00
我们之前是用python通过dpkt pcap两个库通过抓包形式得到连接域名的真实IP的,PHP只是略懂所以没试过。
Livid
2015-04-07 19:05:04 +08:00
@Anybfans
@lafirel
@yylzcom
@NewYear
@fork3rt

是我眼花看错了 -_-

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/181991

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX