[英]How to get Serial number or Mac address of Airprint printer from iOS application programatically
我在iOS應用程序中實現了打印功能。 我的iPad已通過同一Wi-Fi連接到AirPrint打印機。 在發出打印命令之前,是否可以在iOS應用程序中獲取打印機的序列號或Mac地址?
您可以使用兩個階段的方法:
arp
查找打印機的MAC地址。 我無法為您提供代碼...但是命令行實用程序dns-sd
會演示第一步。
無論此命令行可以返回給您什么信息,dns-sd庫API都可以。 有關更多詳細信息,請參見/usr/include/dns_sd.h
。
下面概述了第一步的步驟。
假設您要查找域名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打印機”的實例。
現在,您可以查詢承載服務實例“ 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處到達”行 。 這將為您提供所需的主機名。
現在,您可以要求托管此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地址。
要查找相應的MAC地址,只需使用ARP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.