簡體   English   中英

如何以編程方式從iOS應用程序獲取Airprint打印機的序列號或Mac地址

[英]How to get Serial number or Mac address of Airprint printer from iOS application programatically

我在iOS應用程序中實現了打印功能。 我的iPad已通過同一Wi-Fi連接到AirPrint打印機。 在發出打印命令之前,是否可以在iOS應用程序中獲取打印機的序列號或Mac地址?

您可以使用兩個階段的方法:

  1. 使用標准Bonjour方法查詢打印機的IP地址。
  2. 使用arp查找打印機的MAC地址。

我無法為您提供代碼...但是命令行實用程序dns-sd會演示第一步。

無論此命令行可以返回給您什么信息,dns-sd庫API都可以。 有關更多詳細信息,請參見/usr/include/dns_sd.h

下面概述了第一步的步驟。

1A。

假設您要查找域名dns-sd.org.所有支持AirPrint的設備的實例名稱dns-sd.org. ...

然后,您將使用:

dns-sd  -B  _ipp._tcp.,_universal dns-sd.org.

  Browsing for _ipp._tcp.,_universal.dns-sd.org.
  DATE: ---Sat 02 Jul 2016---
  14:20:07.190  ...STARTING...
  Timestamp     A/R  Flags if Domain       Service Type  Instance Name
  14:20:07.626  Add      2  0 dns-sd.org.  _ipp._tcp.    Stuart's Home AirPrint Printer
  ^C

(請注意,_universal后綴[requesting AirPrint子集]到_ipp._tcp.的標准查詢_ipp._tcp.該查詢會請求所有支持IPP的通用打印設備的列表...)

現在,您已經找到一個名為“ Stuart的家用AirPrint打印機”的實例。

1B。

現在,您可以查詢承載服務實例“ Stuart的Home AirPrint打印機”的網絡節點的主機名:

dns-sd  -L  "Stuart's Home AirPrint Printer"  _ipp._tcp.  dns-sd.org.

  Lookup Stuart's Home AirPrint Printer._ipp._tcp..dns-sd.org.
  DATE: ---Sat 02 Jul 2016---
  14:37:44.436  ...STARTING...
  14:37:44.813  Stuart's\032Home\032AirPrint\032Printer._ipp._tcp.dns-sd.org. can be reached at airprint.dns-sd.org.:631 (interface 0)
     txtvers=1                                             \
     qtotal=1                                              \
     pdl=application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/pdf,image/urf \
     rp=ipp/printer                                        \
     URF=CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,IS1-2-4,MT1-2-3-5-12,MT1-2-3-5-12,RS600 \
     ty=HP\ LaserJet\ 400\ color\ M451nw                   \
     product=\(HP\ LaserJet\ 400\ color\ M451nw\)          \
     priority=10                                           \
     adminurl=http://www.dns-sd.org/ServerStaticSetup.html \
     note=At\ Stuart\'s\ house                             \
     Color=T                                               \
     Duplex=F                                              \
     Scan=F
  ^C

請注意, “ ...可以在airprint.dns-sd.org.:631處到達”行 這將為您提供所需的主機名。

1C。

現在,您可以要求托管此AirPrint實例的IP地址(IPv4和IPv6):

dns-sd -Gv4v6 airprint.dns-sd.org. 

  DATE: ---Sat 02 Jul 2016---
  14:19:12.040  ...STARTING...
  Timestamp     A/R Flags if Hostname               Address                                   TTL
  14:19:12.426  Add     2  0 airprint.dns-sd.org.   50.197.138.101                            75
  14:19:12.544  Add     2  0 airprint.dns-sd.org.   0000:0000:0000:0000:0000:0000:0000:0000%  77   No Such Record
  ^C

因此,此AirPrinter確實具有IPv4( 50.197.138.101 )但沒有IPv6地址。

2。

要查找相應的MAC地址,只需使用ARP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM