GetAnswersFromResponseメソッドで、DNSサーバーから受信したデータを解析しています。Code)とANCOUNT(Answer数)だけを取得して、それ以外は無視しています(NSCOUNTとARCOUNTも取得はしていますが、使用していません)。Question部分は、送信したQuestionと同じ長さだと決めつけて、読み飛ばしています。その後のAnswer部分のみを解析して、AuthorityとAdditionalはあっても(NSCOUNTかARCOUNTが0でなくても)無視しています。Answer部分の解析は、NAME(ドメイン名)、TYPE(レコード種別)、RDLENGTH(RDATAの長さ)、RDATAの取得だけを行い、他(CLASSとTTL)は無視しています。RDATAの解析は、それがドメイン名ならばGetDomainNameメソッド、IPアドレスならばGetIPv4Addressメソッドで行っています。MXレコードの場合は、その前にPreference(優先度)を取得しています。ConvertToShortメソッドでは、2つのバイト値から1つのInt16値を作成しています。Frameworkには、よく似た機能のメソッドにBitConverter.ToInt16メソッドがありますが、このメソッドはシステムによって結果が変わる可能性があります(Windowsの場合は、そのままのバイト配列順では、間違った値になってしまいます)。BitConverterを使用した場合は、その後でIPAddress.NetworkToHostOrderメソッドを使用してバイト順を正しく並べ直す必要があります。皆様のおかげで、今年も一年無事に過ごすことができました。ありがとうございました。来年もよろしくお願いいたします。それでは、よいお年を。functionを使用するなどが考えられます。List」などにあります。