2016-06-08 14 views
1

다음은 IPv4 프린터에 연결하는 코드입니다. 모든 것은 괜찮습니다.AirPrint Code가 IPv6 전용 프린터에 연결됩니까?

NSString *printerURL = @"ipp://192.168.1.3:631/ipp/print" //IPv4 : OK 

UIPrinter *myPrint = [UIPrinter printerWithURL:[NSURL URLWithString:printerURL]]; 
    [myPrint contactPrinter:^(BOOL available) { 
     if(!available){ 
      // Show error 
     } 
     [printInteraction printToPrinter:myPrint completionHandler:^(UIPrintInteractionController * _Nonnull printInteractionController, BOOL completed, NSError * _Nullable error) { 
      // Print 
     }]; 
    }]; 

나는 IPV6 프린터를 가지고 있지 않기 때문에, 나는 아래의 코드에 무슨 일이 일어날 지 모르는 :

NSString *printerURL = @"ipp://FE80::FE3F:DBFF:FE51:6BA:631/ipp/print" //IPv6 : ???? 

그것의 IPv6 프린터에 연결 것인가?

+0

내가 생각하기에 *** IPv6 주소를 다음과 같이 대괄호로 바꾸는 것이 좋습니다. *** @ : ipp : // [FE80 :: FE3F : DBFF : FE51 : 6BA] : 631/ipp/print ". 나머지는 내 대답을보십시오 ... –

답변

1

IPv6 프린터도 AirPrint 지원 장치도 없습니다.

하지만 코드에서 IPv6 연결을 위해 작동하는지 테스트 수있는 방법, 당신을위한 제안이 : 가짜로 LAN/WLAN에서 iOS 장비를 수있는 환경을 맥북을 사용

  • 그들이 생각 "볼"수 있으며 AirPrint 장치에 연결할 수 있습니다. 여기

는 자세한 단계는 다음과 같습니다

  1. IPv6 주소는 당신의 맥북에 할당되어 있는지 확인합니다. (당신이 어떻게 그런이 답변의 범위를 벗어납니다.)

  2. 확인 맥북의 CUPS 서비스 cupsd.conf에 줄을 추가하여 IPv6 만 연결을 허용되어 있는지 확인 :

    Listen [xxxx::xxxx:xxxx:xxxx:xxxx]:631 
    Listen /private/var/run/cupsd 
    # Port 631 
    
  3. 것이 있는지 확인하는 것이 당신의 이것은 당신이 인증 또는 금을 디버깅 할 필요가 없습니다 것입니다 수

    DefaultAuthType None 
    

    : cupsd.conf 또한이 라인을 가지고 귀하의 IPv6 및 AirPrint 기능 위에 문제가 발생했습니다. (현재 문제가 해결되면 당신은 나중에 다시 변경할 수 있습니다.)

  4. 은, 말하자면, abcd 그것을 당신의 맥북에 인쇄 대기열을 공유 만들고 이름을 지정합니다. 대기열은 AirPrint 장치에 연결할 필요가 없습니다. 다른 프린터는 "충분 함"입니다. 또한 MacBook을 연결할 수만 있다면 프린터는 IPv4 전용 또는 USB 또는 Bluetooth 일 수도 있습니다. (그 방법은이 답변의 범위를 벗어납니다.)

  5. 프린터 테스트 : MacBook에서 프린터가 인쇄되는지 확인하고 다른 클라이언트가 공유 대기열로 인쇄 할 수 있는지 확인하십시오.

  6. 귀하의 Mac 클라이언트는 이제 귀하의 abcd 인쇄 대기열을 "볼"수 있으며 귀하의 iOS 클라이언트는 AirPrint 장치를 보지 못합니다.

  7. 이제 dns-sd 유틸리티를 사용하여 가짜 AirPrint 장치를 로컬 네트워크에 알리고 실제 인쇄 대기열 abcd을 가리 키십시오. 명령의 일반적인 구문은 다음과 같습니다.

    dns-sd -P <Name> <Type> <Domain> <Port> <Hostname> <IP> [<TXT>...] 
    

    이제 실제 명령을 실행하려면 터미널을 엽니 다.응용 프로그램 창이를 입력 : 여기

    dns-sd     \ 
        -P AirPrint-abcd  \ 
        _ipp._tcp,_universal \ 
        local.    \ 
        631     \ 
        mymacbook.local.      \ 
        xxxx::xxxx:xxxx:xxxx:xxxx   \ 
        pdl="application/pdf,image/urf" \ 
        kind="document"     \ 
        priority="1"      \ 
        product="Model Name of my Printer" \ 
        rp="printers/abcd"     \ 
        URF="DM3"       \ 
        Duplex="T"       \ 
        Color="T"       \ 
        note="Testing AirPrint on MacBook" \ 
        txtvers="1"      \ 
        qtotal="1"       \ 
        printer-type="0x0480FFFC"   \ 
        printer-state="3"     \ 
        air="none"       \ 
        UUID="54321abc-1234-1234-abcd-ffa8e4bdcbf8" 
    

    ,

    • xxxx::xxxx:xxxx:xxxx:xxxx이 당신의 맥북
    • mymacbook의 IPv6 주소입니다 당신의 맥북
  8. 을의 호스트 이름입니다 이제 iOS 고객은 ee를 입력하고 AirPrint-abcd이라는 AirPrint 장치를 사용하십시오.

    -P이 AirPrinter의 연결 경로가 맥북의 IPv6 주소이고 사용할 수있는 포트가


    추가 설명 (631)

이라는 서비스 발표는 또한 그들에게 말한다 dns-sd 유틸리티에 대한 매개 변수는 로컬 LAN/WLAN에 Bonjour "프록시 알림"을 ​​생성합니다. 이 유틸리티에 대한 자세한 내용은 man dns-sd을 참조하십시오. 배경에 대한 자세한 내용은 dns-sd.orgthese other answers을 참조하십시오.