Ваш IP-адрес клиента должен быть доступен независимо от его местонахождения на Citrix Server. Вы пробовали
string ip = Request.UserHostAddress;
или
string ip = HttpContext.Current.Request.UserHostAddress;
Или ваша машина Citrix позади какой-то прокси-сервер? В этом случае попробуйте:
string ip = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
И если речь идет о IP-адрес физического хоста, XenApp виртуальная машина губит дальше, то он может может быть невозможно узнать его из запроса. Физическая сеть может быть полностью независимой от виртуальной, и запрос клиента никогда не пройдет через нее. Таким образом, вам нужен другой API (XenServer или другая система виртуализации), чтобы соответствовать адресу VM на адрес физического хоста.
... это вернет адрес виртуального клиента. Но мне нужен адрес хоста, на котором работает виртуальный клиент. У меня такая же проблема, когда я запускаю виртуальную машину с мостовой сетью. Для лучшего понимания: некоторые свойства моего сайта должны зависеть от физической машины, а не от виртуального клиента. – Steffen
Вы имеете в виду, что ваш сервер XenApp работает на хосте XenServer, и вам нужно получить этот IP-адрес хоста из запроса, который пришел из опубликованного браузера? –
... да, я думаю, что это хорошо описывает ситуацию. Браузер работает на виртуальном рабочем столе, но мне нужно определить хост. – Steffen