V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yitalin
V2EX  ›  PHP

ICP 备案信息查询 API 接口开源

  •  
  •   yitalin · 2021-08-06 21:44:16 +08:00 · 5663 次点击
    这是一个创建于 1205 天前的主题,其中的信息可能已经有所发展或是发生改变。
    由于找了一下此 API 全部都是收费的,自己就去官网研究了下,然后就搞定了
    采用管局官网北岸接口,查询结果为最新 ICP 北岸数据

    请求示例: https://check.lzfh.com/api/icp.php?domain=qq.com
    请求方式:get
    请求参数:domain=需查询的域名,可以包含 http 或二级
    返回示例:
    {
    "icp": "粤 B2-20090059-5",
    "unitName": "深圳市腾讯计算机系统有限公司",
    "natureName": "企业",
    "msg": "查询成功",
    "result": "1"
    }
    返回 result 为 0 则查询失败。

    开源地址: https://github.com/yitd/ICP-API

    小弟纯自学 php,代码很搓,大神勿喷,咱只管能用就行!
    第 1 条附言  ·  2021-08-06 22:56:27 +08:00
    根据 loc 大佬们的研究,authKey 已经搞定了
    第 2 条附言  ·  2021-08-06 23:16:26 +08:00
    访问频率太高就会查询失败,你们自己搭就好了
    17 条回复    2021-08-07 19:29:54 +08:00
    lscho
        1
    lscho  
       2021-08-06 21:49:35 +08:00
    里面的 authKey 是固定的吗?感觉应该有时间限制的
    yitalin
        2
    yitalin  
    OP
       2021-08-06 21:52:30 +08:00
    @lscho authKey 是根据在官网根据当时时间戳生成的,目前会不会失效不清楚,失效了可以去官网提取下新的
    xia0chun
        3
    xia0chun  
       2021-08-06 22:23:22 +08:00 via Android
    {"icp":null,"unitName":null,"natureName":null,"msg":"查询失败,authKey 有误","result":"0"}

    演示站已失效
    rekulas
        4
    rekulas  
       2021-08-06 22:46:25 +08:00
    就我所知,备案查询应该是要验证的,不清楚验证后可以管多久
    balabalaguguji
        5
    balabalaguguji  
       2021-08-06 22:53:28 +08:00
    接口文档用易文档写专业点 https://easydoc.net
    yitalin
        6
    yitalin  
    OP
       2021-08-06 22:56:51 +08:00
    @lscho
    @xia0chun authKey 已经搞定了
    mytsing520
        7
    mytsing520  
       2021-08-06 23:47:34 +08:00
    这个接口很棒
    shoaly
        8
    shoaly  
       2021-08-06 23:54:11 +08:00
    实话实说, 官网就应该把这个 api 正经做出来, 给人用...
    yitalin
        9
    yitalin  
    OP
       2021-08-07 00:01:20 +08:00
    @shoaly 我也觉得,现在这样搞得好像很小气似的,估计服务器太差怕承受不住?
    shoaly
        10
    shoaly  
       2021-08-07 00:18:33 +08:00
    @yitalin 相反会减少访问次数, 大家不用去访问首页了
    realpg
        11
    realpg  
       2021-08-07 09:33:07 +08:00
    @shoaly #8
    IDC 飘过
    所有接入单位都有接口的,可以直接查。
    对公众开放这个接口没啥卵用
    shoaly
        12
    shoaly  
       2021-08-07 09:37:19 +08:00
    @realpg 我自己是会从域名去反查公司的.... 这和通过公司名字查法人一样的需求.. 不同的是 企查查收费, 域名备案是国家的, 不可能收费, 就可以直接开放接口给公众了
    realpg
        13
    realpg  
       2021-08-07 12:49:39 +08:00
    @shoaly #12
    域名备案信息一直是开放给公众查询
    但是开放 API 给公众,反正我是看不到任何理由,除了被非法人士采集,或者自动化做什么坏事,我看不到任何应该开放的理由。
    而对服务商,API 一直是开放的,随便查。
    bzj
        14
    bzj  
       2021-08-07 13:49:12 +08:00
    @shoaly

    你又知道了,企查查还不是用的国家企业信息公示系统的数据,这个系统也是免费对外开放的,企查查收费是收的数据处理的费用
    shoaly
        15
    shoaly  
       2021-08-07 17:30:57 +08:00
    @bzj 一定非要抬杠么, 对比的企查查的 api 接口, https://openapi.qcc.com/services/pre/guide
    lujjjh
        16
    lujjjh  
       2021-08-07 18:57:57 +08:00
    有很多可以优化的地方,比如缓存 token 和查询结果配合 stale-while-revalidate 的缓存策略。

    比较适合 Serverless,直接运行在边缘节点上。我用 Cloudflare Workers 实现了你的逻辑,加上了缓存策略,可以看 https://github.com/lujjjh/icp-query

    查询 g.cn 备案的请求例子:
    https://icp-query.lujjjh.workers.dev/g.cn

    当然,这个仅以学习为目的,不提供 SLA 。
    yitalin
        17
    yitalin  
    OP
       2021-08-07 19:29:54 +08:00
    @lujjjh 缓存一段时间查询结果可以,避免了频繁请求被阻止的问题
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2810 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:50 · PVG 19:50 · LAX 03:50 · JFK 06:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.