问个面试用的题目,你如何获取一个域名的所有 ip

2016-11-24 16:41:06 +08:00
 firefox12

问个面试用的题目,你如何获取一个域名的所有 ip ?

结果需要可实践,可以做出来。 比如 www.sina.com weibo.com www.qq.com

如何尽可能多的获取它们对应的 ip ? 给你 1 个小时,可以使用网络,自己编码,或者??

如果使用工具,工具必须别人也可以无障碍的访问到!

8980 次点击
所在节点    程序员
36 条回复
cevincheung
2016-11-24 16:54:38 +08:00
难道不是 dig?
zixianlei
2016-11-24 16:59:51 +08:00
Andrewliu
2016-11-24 17:01:42 +08:00
我记得 c lib 中 gethostbyname 会返回一个数据结构, 其实包含一个可遍历数组, 可以来遍历所有 ip (逃
Technetiumer
2016-11-24 17:09:19 +08:00
用各地的公共 DNS 都解析一遍

智能解析是根据递归 DNS (公共 DNS )服务器的 IP 来分配节点的,而不是用户 IP 。
firefox12
2016-11-24 17:09:43 +08:00
@zixianlei 如果都是中国主机,还能想到更精确的办法吗?
firefox12
2016-11-24 17:10:51 +08:00
@Technetiumer 如何获取各地公共 dns , 如何确保 你获取了足够的 dns 。
enenaaa
2016-11-24 17:12:57 +08:00
@Andrewliu gethostbyname()只返回某个 dns 里配置的 ip ,或者只返回其中一个。 而且域名也可能配置多个 dns
waytoexplorer
2016-11-24 17:16:46 +08:00
遍历一遍 ip 最精确了,感觉能在几个小时内完成遍历
EricInBj
2016-11-24 17:19:23 +08:00
dig +subnet
这样?
Technetiumer
2016-11-24 17:19:51 +08:00
无法确保获取了足够的 DNS

你要不要试试

http://www.ipip.net/dns.php

无法确保无障碍的访问到
waruqi
2016-11-24 17:26:01 +08:00
getaddrinfo gethostbyname 或者自己写 dns 解析
cmxz
2016-11-24 17:26:02 +08:00
多个 ip 的情景有 3 种
1.域名配置时一个域名可解析出来多个 ip ,这是为了 ip 后的服务不可用后客户端切换到后续的 ip
2.为了提高用户访问速度,使用各种方式使得用户可以就近访问
3.运营商进行的 DNS 劫持
如果不考虑 3 ,那么通过各种方式(各种全国 ping 网站,网上已有的数据)收集全国各省市电信运营商的 DNS 服务器 ip ,在他们没有限制只对指定段 ip 的查询进行响应的情况下进行 dig 就好了
如果考虑 3 ,那还要把解析到的 ip 进行判断是否为该公司的服务器,判断方法有从 response header 看差异、把 http host 字段为其他公司域名的请求打到该 ip 上等等
Technetiumer
2016-11-24 17:28:40 +08:00
@cmxz 楼主已经回复了,无法确保获取了足够的 DNS
firefox12
2016-11-24 17:38:06 +08:00
@Technetiumer 开放题,其实大多数的 ping 网站的 dns 应该足够。 但是有办法拿到一份权威的 中国国内的 dns 列表吗?
这样可以防止 ping 网站有遗漏!
xiaoz
2016-11-24 17:41:11 +08:00
难道不是超级 ping : http://ping.chinaz.com/
mhycy
2016-11-24 17:42:33 +08:00
1 、遍历国内 IP 地址段,得出所有有响应的 DNS 服务器地址。
(这里有几个坑)
( 1 、一般而言移动的 DNS 不会响应电信过来的请求)
imlonghao673
2016-11-24 17:43:32 +08:00
假定他有域传送漏洞,嗯,然后应该全了
laoyuan
2016-11-24 17:45:12 +08:00
只有我想到黑进去瞧瞧么。。
imlonghao673
2016-11-24 17:45:27 +08:00
暴力方法,扫描全球 IP80 端口,然后加 Host 跑
当然会有些反代的。
xfspace
2016-11-24 17:46:18 +08:00
难道不是打个电话给公司,问他拿个 IP 段?

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

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

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

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

© 2021 V2EX