Вы можете использовать утилиту windiff, включенную в Windows, начиная с версии NT и выше. Просто запустите «windiff», и появится графический инструмент.
Файл -> Сравнить каталоги
http://msdn.microsoft.com/en-us/library/aa266122 (VS.60) .aspx
В этой статье описывается, как использовать его из командной строки. Большим преимуществом этого инструмента является то, что он уже включен, и вам не нужно ничего скачивать и устанавливать.
Мне кажется, вы пытаетесь найти доменное имя пользователя. Поскольку вы запрашиваете Environment.UserDomainName. Поскольку ваш сайт, скорее всего, работает с «Разрешить анонимный доступ» - пользователь не передает информацию о своем домене на сервер, а IIS предоставляет вам имеющуюся у него информацию об учетной записи, а именно учетную запись пула приложений.
Вам нужно будет извлечь его из объекта запроса:
HttpContext.Current.Request.Url.Host
В вашем вопросе есть конкретная проблема, может быть более одного доменного имени для определенного IP-адреса.
Как заявил Тинистер, вы можете использовать
HttpContext.Current.Request.Url.Host
, но это скажет вам только то, что пользователь написал в адресная строка браузера. Если пользователь добавил запись в свой файл хоста для вашего сайта, а затем использовал это имя хоста, вы увидите именно это. (Понятия не имею, зачем они это сделали).
Если у вас есть несколько доменных имен для вашего веб-сайта,
Попробуйте класс System.Net.Dns
, у него много полезных методов, таких как GetHostEntry, например:
var entry = System.Net.Dns.GetHostEntry("google.com"); // or vice-versa...
var name = System.Net.Dns.GetHostEntry("127.0.0.1"); // localhost ;)