読者です 読者をやめる 読者になる 読者になる

SIN@SAPPOROWORKSの覚書

C#を中心に、夜な夜な試行錯誤したコードの記録です。

Xamarin.Androidで名前解決してみた

【 Xamarin 記事一覧 】

1 .NETライブラリで解決出来たら無敵

XamarinによるAndroidプロジェクトで名前解決(逆引き・正引き)を書いてみました。

前回、ラッパーにちょっと戸惑いましたが、System.Net.Dnsは、そのまま使えました。
何のひねりもありません、そのままです。

無題

2 System.Net.Dns


private void Refresh(){

    var sb = new StringBuilder();//レスポンス用バッファ

    //GetHostByAddressによる名前解決(逆引き)
    var ipStr = FindViewById<EditText>(Resource.Id.text1).Text;
    var hostName = "";
    try {
        var hostInfo = Dns.GetHostByAddress(ipStr);
        hostName = hostInfo.HostName;
    }catch {
        hostName = ipStr;
    }
    sb.Append(String.Format("hostName = {0}\r\n", hostName));
    
    //GetHostAddressesによるアドレス解決
    try{
        foreach(var addr in Dns.GetHostAddresses(hostName)){
            sb.Append(String.Format("IpAddress = {0}\r\n", addr));
        }
    }catch{
        ;
    }
    //結果表示
    FindViewById<EditText>(Resource.Id.text2).Text = sb.ToString();
}

上記のメソッドは、最終行の出力以外、まったくandroidに依存してません。

※やっぱり、戻り値がそのままforeachできるのは幸せです。

【 Xamarin 記事一覧 】