【问题标题】:How to validate Internet Printing Protocol (IPP)?如何验证 Internet 打印协议 (IPP)?
【发布时间】:2023-04-10 07:54:02
【问题描述】:

我想验证 IPP 端口,例如我有像 http://xxx.xxx.xxx.xxx:631/ipp 这样的 IPP 以及我想验证 https://xxx.xxx.xxx.xxx/ipp 的类似方式。是否存在任何 API 来验证 IPP 和 IPP-SSL(如果存在),请告诉我。

如果没有本机 API,请告诉我任何其他方法。

【问题讨论】:

  • 您要验证什么?
  • 我想验证整个 IPP URL,例如“242.29.242.36:631/ipp”和类似的“242.29.242.36/ipp".Now”我想验证我在这里提到的整个 URL,无论它是否是有效格式,同样适用于IPP-SSL 也是。请帮我看看如何验证整个格式是否有效。
  • stackoverflow.com/questions/2616011/…stackoverflow.com/questions/2986306/… 。 Google 无需等待 20 小时,而是会在几秒钟内为您提供解决方案。 (IPP url 没什么特别的)
  • @deviantfan:我没有看到这个问题仅限于验证 IPP URL。标题谈到了 IPP 协议——这是一个完全不同的野兽。你的评论有点讽刺和尖酸,你不觉得吗?
  • @KurtPfeifle 来自 Siva 的引用:“我想验证我在这里提到的整个 URL,无论它是否是有效格式”。无论如何,也许这很刻薄,但如果人们为了自己的利益而记得在询问之前进行搜索,那真的会有所帮助。由于我的评论已有 4 年历史,我想我会继续讨论。

标签: c++ mfc ipp-protocol


【解决方案1】:

查看 Github 上的 IPP Sample Software。它由标准化 IPP(互联网打印协议)的机构 Printer Working Group (PWG) 提供。

该软件目前仍处于测试阶段,已经非常实用。它提供了两个主要的命令行工具:

  1. ippserver。启动它(使用适当的选项),您将在网络上拥有一个成熟的 IPP 服务器实例,用作虚拟 IPP 打印机(或托管多个虚拟 IPP 队列的 IPP 服务器),您可以使用它来测试任何(或您自己) - 编写)IPP 客户端软件针对。

  2. ipptool。这是一个 IPP 客户端程序,它可以将 IPP 请求的任意组合发送到网络上的任何 IPP 实例(CUPS 服务器、ippserver、支持 IPP 的打印机硬件)并验证其响应。该软件附带了一些准备好的文本文件,其中包含示例 IPP 请求,所有文件名都带有 .test 后缀。

出于您的目的,您可以运行以下命令:

  1. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print get-printer-attributes.test。 此命令将查询任何 IPP 打印机有关其支持的 IPP 属性的信息。 这应该包括一个项目,说明其假定 IPP 版本支持,例如 ipp-versions-supported (1setOf keyword) = 1.0,1.1,2.0

  2. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-1.1.test。 此命令将对打印机运行完整的验证套件,以测试其真实世界 IPP-1.1 合规性。

  3. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.0.test。 此命令将对打印机运行完整的验证套件,以测试其真实世界 IPP-2.0 合规性。

  4. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.0.test。 此命令将对打印机运行完整的验证套件,以测试其真实世界 IPP-2.0 合规性。

  5. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.1.test。 此命令将对打印机运行完整的验证套件,以测试其真实世界 IPP-2.2 合规性。

  6. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.2.test。 此命令将对打印机运行完整的验证套件,以测试其真实世界 IPP-2.2 合规性。

  7. ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-everywhere.test。 此命令将对打印机运行完整的 IPP Everywhere(这是最新的 IPP 标准)验证套件,以测试其 真实世界IPP Everywhere 的合规性。

为了方便你们进行此类测试,我从 IPP 示例软件创建了一个现成的可执行 AppImage,它应该能够在所有 x86_64 Linux 发行版上直接运行(无需“安装”!):

  1. 下载:

    wget https://github.com/KurtPfeifle/ippsample/releases/download/continuous/ippsample-x86_64.AppImage
    
  2. 使 AppImage 可执行(并可选择将其重命名为 ippsample):

    chmod a+x ippsample-x86_64.AppImage
    mv ippsample-x86_64.AppImage ippsample
    
  3. 看看它的内置帮助屏幕:

    ippsample --ai-usage
    
  4. 运行它:

    ippsample ipptool -t -v ipp://xxx.xxx.xxx.xxx/ipp/print ipp-2.0.test
    

这里是一个 ASCIInema ascii-cast,用于说明如何使用 IPP 示例软件(及其 AppImage):

【讨论】:

    猜你喜欢
    • 2013-04-18
    • 2012-01-24
    • 1970-01-01
    • 1970-01-01
    • 2022-01-14
    • 2015-07-18
    • 1970-01-01
    • 2020-05-29
    • 2012-04-24
    相关资源
    最近更新 更多