GetHostEntryメソッドを呼び出し、IPアドレスからホスト名を取得する処理の際に、まれに"SocketException"エラーが発生することがあります。 DNSサーバーと通信ができない、IPアドレスでないものの名前解決を処理したなどの原因により発生します。
try ... catch で例外をハンドルすることが基本の対策になります。
string hostname = "";
try {
IPHostEntry iph;
iph = Dns.GetHostEntry(ip);
hostname = iph.HostName;
}
catch (System.Net.Sockets.SocketException exception) {
}