Нет, вы не увидите пустой список адресов: даже если вы запросите метку DNS, которая существует, но не имеет записей A или AAAA (IPv6), SocketException («Такой хост не известен») будет выброшены.
В этом можно убедиться, посмотрев на функцию InternalGetHostByName(string hostName, bool includeIPv6)
в DNS.cs из выпуска .NET Reference Source. За исключением некоторых мер предосторожности для конкретной платформы, DNS-запросы являются простой оболочкой для функции Winsock gethostbyname .
Gethostbyname либо потерпит неудачу, либо вернет список адресов. Пустой список адресов никогда не возвращается, потому что в этом случае функция завершится с WSANO_DATA («Допустимое имя, нет записи данных запрошенного типа»), что означает исключение сокета, которое мы уже видели в .NET.
РЕДАКТИРОВАТЬ, май 2012 г., в ответ на ответы о том, что пустой список все равно возвращается: обратите внимание, что этот ответ относится только к Win32, и что платформы, такие как WinCE, могут вести себя совершенно по-другому. Если вы видите поведение «пустого списка» на Win32 и ваш запрос направлен на общедоступный DNS-сервер, пожалуйста, опубликуйте свой код ...