V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
1903372529
V2EX  ›  程序员

获取全网可访问的网址

  •  
  •   1903372529 · 2019-04-05 09:07:21 +08:00 · 10397 次点击
    这是一个创建于 2089 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想获取我可以访问的所有网址信息,原因:我所知道的网址都是通过各大网站推荐、搜索引擎找到、朋友推荐,这种形式获取的,但总有我未曾发现的非常好的网站,我想通过这种方式获取一些我感兴趣的新网站。(非黄)

    我想尝试获取所有的可以正常访问的网址,并输出网址+标题。 通过搜索发现一篇文章《域名遍历搜索 python 实现》: https://blog.csdn.net/qq_33848737/article/details/77879841

    但博主已经没有更新了,我尝试将他的程序跑起来,发现 domainqueue 在进程池中的协程中调用时为空,而主进程初始化时不为空。由于对 python、对多进程、多线程不够了解,尝试了两天,有些束手无策,但始终难以消除心中的这个想法。希望有大佬可以帮帮我。

    第 1 条附言  ·  2019-04-05 10:20:36 +08:00
    看了大家的回复:
    1、网站基数高达 17 亿。
    2、假设遍历得到所有可访问的网站,结果集也是相当大。
    3、同一个 IP 可能绑定有多个域名。

    难以遍历,遍历后结果集过大,不能达到寻找感兴趣网站的目的,所以遍历所有网站的想法是行不通的。

    那么回到问题的核心:我希望能获取到自己目前不知道的,却是我感兴趣的,有价值的网站。
    该通过怎样的方法去实现呢?
    75 条回复    2019-04-06 21:15:04 +08:00
    Sylv
        1
    Sylv  
       2019-04-05 09:09:34 +08:00   ❤️ 1
    你这想法是大海捞针。
    randyo
        2
    randyo  
       2019-04-05 09:15:46 +08:00 via Android   ❤️ 1
    不如找找看哪里能查询到所有备案域名
    1903372529
        3
    1903372529  
    OP
       2019-04-05 09:15:46 +08:00
    @Sylv 确实是大海捞针,但也许我捞的不是一根针呢?能捞多少捞多少呗。我的想法确实有些奇怪,我通过各种搜索引擎都没有搜到相关的资料,唯一找到一篇就是我在文中提到的哪章。
    foskazs
        4
    foskazs  
       2019-04-05 09:16:35 +08:00 via Android   ❤️ 1
    太難實現了
    1903372529
        5
    1903372529  
    OP
       2019-04-05 09:16:54 +08:00
    @randyo 我在想是不是可以通过遍历 IP 地址来实现?也许有些网站并没有域名?
    1903372529
        6
    1903372529  
    OP
       2019-04-05 09:17:35 +08:00
    @foskazs 确实难以实现,不过我还是很渴望能做到这件事。
    annoy1309
        7
    annoy1309  
       2019-04-05 09:20:54 +08:00 via Android   ❤️ 1
    我觉得你需要科普一下具体定义
    envylee
        8
    envylee  
       2019-04-05 09:23:21 +08:00
    这不就是搜索引擎吗,不断抓取...
    1903372529
        9
    1903372529  
    OP
       2019-04-05 09:25:55 +08:00
    @annoy1309 比如 www.baidu.comwww.v2ex.com ,在我不知道域名的情况下,我希望通过一个程序可以知道这些网址是可以访问的,并获取网站的标题。通过这种方式来发现一些新的网站,也许是我不知道的网站,也许是不出名的网站,也许是刚被搭建且没有做任何宣传的网站。
    OscarUsingChen
        10
    OscarUsingChen  
       2019-04-05 09:27:04 +08:00   ❤️ 1
    1903372529
        11
    1903372529  
    OP
       2019-04-05 09:27:16 +08:00
    @envylee 大概是这个意思,想通过一个程序,列出一个列表,列表包含任何访问状态码为 200 的网站以及网站标题。
    naiba
        12
    naiba  
       2019-04-05 09:28:33 +08:00 via Android
    这个有的,有请楼下搞安全的大佬解答
    1903372529
        13
    1903372529  
    OP
       2019-04-05 09:33:03 +08:00
    @OscarUsingChen 中国占有 7 亿,占有率很高呢。
    XuJianHua
        14
    XuJianHua  
       2019-04-05 09:43:41 +08:00
    @naiba 这个 naiba 是非主流 naiba 吗
    javashell
        15
    javashell  
       2019-04-05 09:45:22 +08:00 via Android
    你这个想法和网络空间引擎相似,具体可以参考 fofa.so 撒旦 钟馗之眼等
    binux
        16
    binux  
       2019-04-05 09:49:33 +08:00 via Android
    Google 只有不存在的网站搜索不到
    blodside
        17
    blodside  
       2019-04-05 09:51:57 +08:00 via Android
    比起去挨个爬不如直接解析 common crawl 的数据 dump
    GeekCourse
        18
    GeekCourse  
       2019-04-05 09:55:48 +08:00 via Android
    谷歌都没有把全部网站给抓取下来。
    如果按照域名遍历的话,你可以计算一下 5 位长度域名。
    26 个字母+10 个数字+中横线=37
    37 的 5 次方等于六千六百万
    再乘以 200 个域名后缀,等于 138 亿

    然后其他域名长度的要不要呢?
    比如 6 位,7 位,8 位,9 位,10 位
    你算算有多少个域名?
    inhzus
        19
    inhzus  
       2019-04-05 09:57:53 +08:00 via Android
    那假如你获取到了所有的网站了,你想到怎么才能找到自己感兴趣的网站了吗?
    Hk4Fun
        20
    Hk4Fun  
       2019-04-05 09:58:16 +08:00 via Android   ❤️ 1
    可以试一下 zmap,据说能在一个小时内扫描整个公共互联网
    heyeshuang
        21
    heyeshuang  
       2019-04-05 10:00:36 +08:00 via Android   ❤️ 5
    想起了一篇科幻小说:《诗云》。我用里面的一首诗来回答你吧:
    啊啊啊啊啊啊啊
    啊啊啊啊啊啊啊
    啊啊啊啊啊啊啊
    啊啊啊啊啊啊嗷
    nfroot
        22
    nfroot  
       2019-04-05 10:01:44 +08:00 via Android
    @Hk4Fun 又不是每个网站都可以直接通过 IP 访问,遍历 IP 没有用的
    tony601818
        23
    tony601818  
       2019-04-05 10:04:36 +08:00
    听说你想复制谷歌?
    lzxgh621
        24
    lzxgh621  
       2019-04-05 10:07:52 +08:00 via iPhone
    域名最长 63 位 总共 63 个字符排列组合 遍历一遍
    Ultraman
        25
    Ultraman  
       2019-04-05 10:08:55 +08:00 via Android
    真找出来了你能一个一个看过去吗…?
    nfroot
        26
    nfroot  
       2019-04-05 10:09:39 +08:00 via Android   ❤️ 1
    你要是觉得遍历 IP 肯定是行不通的,一个 IP 上面可能有一千个域名绑定了。
    遍历域名更行不通,短域名有可能,稍微长一点的不现实。

    不过并不是没有办法,每个域名后缀都有一个组织维护,你只需要找一批雇佣兵,一个个地点摸过去,让他们交出该后缀下所有域名。

    也可以去找那些非权威 dns 服务器(就是类似 114.114.114.114 这种公共 dns,或者运营商 dns 服务器),他们也有列表,不过不是那么完整,不过一个个摸过去绝对可以得到大部分。
    lzxgh621
        27
    lzxgh621  
       2019-04-05 10:10:35 +08:00 via iPhone
    @lzxgh621 #24 是 37
    kerr92
        28
    kerr92  
       2019-04-05 10:11:29 +08:00
    咨询域名注册商?
    nfroot
        29
    nfroot  
       2019-04-05 10:11:46 +08:00 via Android   ❤️ 1
    现在知道为什么谷歌要建立自己的公共 dns 服务器了吧?不管你是什么域名,都需要解析,只要经过了他家的 dns 服务器,就会留下记录,然后关门上爬虫。。。
    nfroot
        30
    nfroot  
       2019-04-05 10:13:57 +08:00 via Android   ❤️ 4
    完成了第一步,接下来你就会遇到第二个问题。

    选择困难症

    这个也是谷歌的专业。。。


    所以更简单的办法是,把谷歌收购了,你的问题全都解决了,这也是可行性最高的方式。
    1903372529
        31
    1903372529  
    OP
       2019-04-05 10:23:43 +08:00
    @nfroot 你说的很有意思。
    1903372529
        32
    1903372529  
    OP
       2019-04-05 10:24:43 +08:00
    @inhzus 确实是一个问题。
    1903372529
        33
    1903372529  
    OP
       2019-04-05 10:25:53 +08:00
    @binux 你确定谷歌能搜索到所有的网站吗?
    naiba
        34
    naiba  
       2019-04-05 10:34:37 +08:00 via Android
    @XuJianHua 这个是非主流奶爸😉
    jadec0der
        35
    jadec0der  
       2019-04-05 11:07:38 +08:00 via iPhone
    无力吐槽,真是缘木求鱼…为什么不相信推荐,要自己去发现?你买书会不相信媒体的书店的推荐,拿出版总署的书号目录一本一本看吗
    annoy1309
        36
    annoy1309  
       2019-04-05 11:33:03 +08:00
    @Hk4Fun 印象中 zmap 那次一小时,用的可是对等的 10G 带宽。。。
    foskazs
        37
    foskazs  
       2019-04-05 11:34:48 +08:00 via Android
    你是不是想开发个暗网……
    qilishasha
        38
    qilishasha  
       2019-04-05 11:46:36 +08:00   ❤️ 1
    可以通过 ip 为遍历基础,然后对每一个 ip 进行域名绑定反查,就可以有效的获得在用域名了。然后对每个域名的快照内容进行你感兴趣的筛选就可以了。
    yingfengi
        39
    yingfengi  
       2019-04-05 12:12:12 +08:00 via Android
    关键词:钟馗之眼

    但是你也得有关键词啊。。。不然难道你遍历所有域名?那还有二级域名呢,你怎么办。
    yingfengi
        40
    yingfengi  
       2019-04-05 12:13:26 +08:00 via Android
    @lzxgh621 二级域名,三级域名,四五六七八九十级域名怎么办。
    mayx
        41
    mayx  
       2019-04-05 12:28:51 +08:00 via Android
    censys 可以扫描所有没设白名单的网站
    jeffjade
        42
    jeffjade  
       2019-04-05 12:34:54 +08:00   ❤️ 1
    如果你的初衷是:“希望能获取到自己目前不知道的,却是我感兴趣的,有价值的网站”
    那么推荐关注下 https://nicelinks.site/ 这个网站,兴许对你有所帮助(尤其是在未来)。
    io123
        43
    io123  
       2019-04-05 12:46:29 +08:00 via Android   ❤️ 1
    之前写过这种广度爬虫,每分钟抓取 1 万+网址(不重复)
    lhx2008
        44
    lhx2008  
       2019-04-05 12:49:36 +08:00 via Android   ❤️ 1
    楼主的意思就是建立一个分布式的网站推荐系统,这个确实没人做,不过难度也非常高
    waacoo
        45
    waacoo  
       2019-04-05 12:54:58 +08:00 via iPhone   ❤️ 1
    Internet Archive is a non-profit digital library offering free universal access to books, movies & music, as well as 351 billion archived web pages.
    你想的别人都缓存了,你唯一要做的就是爬它,然后列表出来。
    archive.org
    1903372529
        46
    1903372529  
    OP
       2019-04-05 13:40:34 +08:00 via Android
    @jeffjade 感谢
    1903372529
        47
    1903372529  
    OP
       2019-04-05 13:42:26 +08:00 via Android
    @io123 可以参考一下吗?
    1903372529
        48
    1903372529  
    OP
       2019-04-05 13:43:39 +08:00 via Android
    @lhx2008 放大了讲确实是这个意思,不过目前只是想自己做个功能型工具玩儿。
    Mutoo
        49
    Mutoo  
       2019-04-05 13:44:07 +08:00   ❤️ 1
    互联网上 96% 的内容是在深网和暗网的,你爬也爬不到。
    1903372529
        50
    1903372529  
    OP
       2019-04-05 13:45:46 +08:00 via Android
    @Mutoo 对这些网站也比较有好奇心,想知道如何能够爬取到
    1903372529
        51
    1903372529  
    OP
       2019-04-05 13:47:17 +08:00 via Android
    @Mutoo 如果爬不到,那他们是怎么访问的呢?
    Mutoo
        52
    Mutoo  
       2019-04-05 13:48:26 +08:00
    @1903372529 会员制网站,学术数据库,Tor 网络上的军火商。
    1903372529
        53
    1903372529  
    OP
       2019-04-05 13:51:36 +08:00 via Android
    @Mutoo 感谢科普
    grimpil
        54
    grimpil  
       2019-04-05 13:54:13 +08:00 via Android
    庄子:吾生也有涯,而知也无涯,以有涯随无涯,殆已。

    不如你先说说你都对啥感兴趣,v 站这么多大佬,给你推荐一些不就行了
    1903372529
        55
    1903372529  
    OP
       2019-04-05 13:58:46 +08:00 via Android
    @grimpil 感谢你的建议
    binux
        56
    binux  
       2019-04-05 14:19:18 +08:00
    @Mutoo #51 但是这些不符合「全网可访问」和「我可以访问的」的要求
    Mutoo
        57
    Mutoo  
       2019-04-05 14:39:28 +08:00
    @binux 你理解的“全网可访问”是“所有人都能访问”,而我理解的是“在能访问公网的任意网络结点”都能访问,而前提是你要有登陆权限。
    janus77
        58
    janus77  
       2019-04-05 14:52:30 +08:00
    网址 url 的话,理论上应该是超级大的,因为可以有二级 三级 等域丨名的存在,而且其没有规律,基本上是想怎么起就怎么起。如果你是最简单粗暴的遍历,估计跑不完
    evegod
        59
    evegod  
       2019-04-05 14:54:43 +08:00
    说,你是想做什么?
    vzev
        60
    vzev  
       2019-04-05 15:24:49 +08:00
    肯定不是为了找感兴趣的网站,这个想法 5 年前就实现了,不过是用来做网赚的。
    讲真,就算从一万个网站里面我估计你也挑不到几个感兴趣的网站。
    BFDZ
        61
    BFDZ  
       2019-04-05 15:48:05 +08:00
    首先明确你的兴趣方向,然后主要几个找圈内网站的方法:
    1、搜索引擎:谷歌、百度等
    2、找兴趣相关的论坛、贴吧,国外有 reddit
    3、加 QQ 群、微信群、tg 群结识圈内人士
    nanaw
        62
    nanaw  
       2019-04-05 16:56:33 +08:00
    @Mutoo 扯毛蛋啊,你当这里是微信公众号。就暗网那一点点路由咋能吹成这样呢?暗网站点能有表网的千分之一就不错了
    sigup
        63
    sigup  
       2019-04-05 17:50:37 +08:00
    https://censys.io/data
    这里有全球 80,443 端口的 http get 结果
    sigup
        64
    sigup  
       2019-04-05 17:55:27 +08:00
    censys 好像收费了,下面这个还没收费,而且更全一些
    https://opendata.rapid7.com/sonar.http/
    Moani
        65
    Moani  
       2019-04-05 20:32:51 +08:00
    @1903372529 emmmmm,根据你的要求,在对对象一无所知的情况下,判断该域名是否可以访问?那你直接访问该域名根据返回结果就可以判断。
    一种情况,你想对沙漠中的每一粒沙子都了解?(新开网站,新注册域名)
    或者,你想知道,沙漠里与你相关的沙子?或者可能相关的沙子?
    那么,大数据与人工智能?根据你的行为判断,而推送你想要的。
    Mutoo
        66
    Mutoo  
       2019-04-05 20:46:44 +08:00
    @nanaw 数据引用自 The Dark Net isn't what you think. It's actually key to our privacy | Alex Winter | TEDxMidAtlantic
    &ab_channel=TEDxTalks
    2 分 57 秒
    iacyl
        67
    iacyl  
       2019-04-05 21:06:57 +08:00
    大家不要被楼主骗了,楼主其实是抓取全网消息来训练的人工智能。
    qqor
        68
    qqor  
       2019-04-05 21:45:37 +08:00 via Android
    @1903372529 都是小偷或者僵尸战
    eluotao
        69
    eluotao  
       2019-04-06 00:32:24 +08:00 via iPhone
    告诉你一个最简单的,便利所有中文博客,还有 csdn,博客园,等个人网站的社区,抓取这些网站的所有文章,还有评论,从这些数据里就能筛选出基本全网所有已知,公开,有影响力的网站信息了!

    比你遍历域名靠谱多了
    eluotao
        70
    eluotao  
       2019-04-06 00:33:32 +08:00 via iPhone
    他们都有分享域名和链接,统统取得域名和标题。保存起来,去除重复
    quake0day
        71
    quake0day  
       2019-04-06 01:28:33 +08:00
    当然是通过和你兴趣类似的人收藏的书签了
    推荐试下 https://pinboard.in/
    flynaj
        72
    flynaj  
       2019-04-06 11:17:57 +08:00 via Android
    想找什么东西直接 Google 就行,如果你找到东西经常在那个网站上,那个网站就是你感兴趣的
    zhzbql
        73
    zhzbql  
       2019-04-06 11:50:40 +08:00
    楼主你是多有钱,这么大量的数据光是买硬盘的钱都得上千万
    Northxw
        74
    Northxw  
       2019-04-06 20:54:40 +08:00
    如果你有上亿美元,先买等价的云服务器,然后编写足够强健的爬虫,爬虫没日没夜爬取不下线...... 就这样,估计也搞不完,就算你的预期目标是中国版图内的 URL,你也得先剔除掉这些网页中的外网站点。 总之,虽然在理论上可以实现,但是现实不允许你这样做。因为真的真的真的真的没有资本...................
    opengps
        75
    opengps  
       2019-04-06 21:15:04 +08:00 via Android
    有些时候不太好,会把暗网各种不适合宣传的内容暴露出来
    也有暴露不出来的网站,比如我的某个业务网站,域名只靠 hosts 解析使用来避免被公网工具扫描到
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4416 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 10:11 · PVG 18:11 · LAX 02:11 · JFK 05:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.