Xamarin.Androidで名前解決してみた
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できるのは幸せです。