2016-12-13 7 views
0

私は非常にゴランに新しいです、私はパイソンでいくつかの経験があるが、このレベルではないと言う。私は "digall"と呼ばれるアプリケーションを作成しており、ユーザーがドメイン名をチェックするときにアクティブなDNSレコードを簡単に見ることができます。私は、私はいくつかの問題を持っているように見えるLookupSRVを、使用していたアプリケーションで golang net module(LookupSRV)

:あなたは、変数「サービス」を見ることができるように

func srvRecord(query string) { 
     service := "sipfederationtls" 
     protocol:= "tcp" 
     fmt.Printf("\n[+] SRV Record(s)\n") 
     //srvMap := ["sipfederationtls", "autodiscover", "VLMCS"] 
     cname, addresses, err := net.LookupSRV(service, protocol, query) 

     if err != nil { 
       fmt.Printf("[!] This feature is currently under development, thus not ready yet.\n") 
     } 

     fmt.Printf("cname : %s \n", cname) 

     for i := 0; i < len(addresses); i++ { 
       fmt.Printf("addrs[%d].Target : %s \n", i, addresses[i].Target) 
       fmt.Printf("addrs[%d].Port : %d \n", i, addresses[i].Port) 
       fmt.Printf("addrs[%d].Priority : %d \n", i, addresses[i].Priority) 
       fmt.Printf("addrs[%d].Weight : %d \n", i, addresses[i].Weight) 
     } 
} 

は、SRVレコードの接頭語としての役割を果たす。私の唯一の問題は、このレコードの複数のプレフィックス、つまり "sipfederationtls"、 "autodiscover"、 "VLMCS"をチェックしたいということです。

私が求めているのは、どのように私はこの機能を迅速にこれらのプレフィックスを介して動作するものを返すようにするには?

私はこれがノブの質問であると知っていますが、私はゴランのことは非常に新しいと言いました。私はあなたが私に与えることができるヒントをありがとうと思います。ここで

は、アプリケーションの完全なソースです:http://dpaste.com/3X24ZYR

ありがとうございました。

答えて

0

LookupSRVメソッドを使用して複数のサービスを一度に照会することはできません。を使用して複数のサービスを一度に照会することはできません。

あなたはより良いサービスの名前のスライスを作成します。その後、

services := [...]string{"service1", "service2", "service3") 

そして、それを反復処理し、各サービスのLookupSRVを呼び出す:検索結果の繰り返し処理を行う場合、また

for _, service := range services { 
    cname , addrs, err := net.LookupSRV(service, "tcp", "your.domain.name") 

    // error handlling 
} 

、それをrangeキーワードを使用する方が良いです。

for _, record := range addrs { 
    fmt.Printf("Target: %s:%d\n", record.Target, record.Port) 
} 
+0

ありがとうございます。アプリケーションに追加しようとしましたが、次のようなエラーが発生します。 google.co.jp #コマンドライン引数 ./digall.go:54:未定義:エラー ./ digym.go:58:undefined:cname ./digall.go:60:未定義:アドレス ./digall.go:61:未定義:アドレス ./digall.go:62:未定義:アドレス ./digall。./digall.go:91:srvRecordの引数にタイプ文字列としてクエリ[1](タイプバイト)を使用できません。 変更されていないバージョンここにあります:http://dpaste.com/3X24ZYR – xrefor

+0

私が 'cn ame'、 'addrs'、' err'をループの中に入れないので、ループの範囲外でコンテンツを印刷しようとすると利用できなくなります。 –

+0

遅れて申し訳ありません。私はそれを理解したと思う。ありがとうございました! :) – xrefor