V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
YYSWDD
V2EX  ›  问与答

有没有办法通过程序获取打印机的序列号?

  •  
  •   YYSWDD · 31 天前 · 876 次点击
    最近单位想做一个资产统计的软件。在每台电脑上运行一下,就可以获取电脑、打印机的品牌型号、内存、mac 地址等信息。

    目前通过 win32 api 和 wmic ,可以获取大部分信息,但是有的电脑只能获取品牌,主板信息里没有具体型号,只有产品编码。

    最主要的是,没有办法获取到打印机的序列号。因为打印机都是共用的,就没办法统计具体有多少台打印机。

    台式机 A 获取到了打印机信息,台式机 B 也获取到了,就有很多重复的。

    不过应该是有方式可以获取的,因为我在注册表里搜到了有些打印机的序列号。有些打印机注册表里就没有。
    有的打印机在设备属性里,就直接可以看到序列号。不知道有没有办法能稳定有效。

    获取打印机序列号之后,还要登记每个打印机的运维记录。要记录多久换了一次粉。
    8 条回复    2024-11-21 09:07:03 +08:00
    olaloong
        1
    olaloong  
       31 天前   ❤️ 1
    打印机联网吗?联网可以直接访问打印机的 ip ,通常页面上就有序列号
    sss15
        2
    sss15  
       31 天前

    获取了一堆打印机,其实只有最后一个打印机是真打印机,其他要么是之前链接过,现在已经不在了,要么就是 wps office 的虚拟打印机
    YYSWDD
        3
    YYSWDD  
    OP
       31 天前
    @olaloong 有的是联网的,有的是 ipv6 的。
    ponng
        4
    ponng  
       31 天前 via iPhone
    看看打印机是不是都开启了 ipp 协议打印,开了的话内网扫描一圈,多少个打印机应该就清楚了,然后用 ipp 依次发送获取序列号的请求。

    可以尝试下这个思路可不可行
    YYSWDD
        5
    YYSWDD  
    OP
       31 天前
    @sss15 是的,这个过滤一下还好。只是没有办法获取到序列号。之前我以为“硬件 id”是唯一的。但是后来发现同一批次的打印机“硬件 id”是一样的。
    sleepm
        6
    sleepm  
       31 天前
    看机型吧
    https://support.hp.com/cn-zh/document/c02846934
    有的在机身哪个位置
    有点打印状态页,有的网页信息里
    吐槽下有些显卡序列号,只在显卡上有个贴纸
    装完了,注册账号想认领设备输序列号,获取积分
    只能再拆下来找
    yinmin
        7
    yinmin  
       31 天前   ❤️ 1
    网络打印机基本都是支持 ipp 协议,你在 linux 里安装 cups 后(apt install cups),可以使用下面的指令获取打印机属性,输出内容中有 1 个 printer-uuid 属性,应该就是打印机的序列号

    ipptool -tv ipp:// [打印机 IP 地址] /ipp/print get-printer-attributes.test

    Windows 下可以试试 WSL2 安装 cups ,应该也支持
    YYSWDD
        8
    YYSWDD  
    OP
       31 天前
    @yinmin 之前试过扫描的工具,但是跨网段扫描的效果不好。要是可以直接和打印机驱动交互,然后读取到信息是最好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2726 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 07:55 · PVG 15:55 · LAX 23:55 · JFK 02:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.