A published application does not get the client IP address but gets the virtual IP address allocated to the server instead.
UseClientIP registry will not assign a client IP address as a Virtual IP address. Such a published application actually uses a Server IP address as its own IP address to communicate with an external application. For example: When launching Internet Explorer as a published application with UseClientIP registry configured, Internet Explorer itself uses a Server IP address to connect to some Web site (Web Server).
UseClientIP does not give any virtually assigned IP address to the session at glance. So you cannot tell if the UseClientIP registry modification actually works from the session information on AppCenter or from netstat command within the session unless a published application in the session shows the related information for it.
To confirm it, publish GetIP.exe with the registry modification for UseClientIP. Once you launch GetIP.exe as a published application, you can see your client local IP address assigned in the IP address field.
This IP address is taken from the gethostbyname function from Winsock. Some applications use a gethostbyname type function to get an IP address for identification purpose. If you have such applications on XenAppServer, you can use UseClientIP for the application to work properly.
MSDN https://msdn.microsoft.com/en-us/library/windows/desktop/ms738524(v=vs.85).aspx indicates this function has been deprecated and getaddrinfo should be used. The following function used by the application is returning the IP address of the host. You will need to use an equivalent of the gethostbyname or getaddrinfo in the application.
REMOTE_ADDR (10.196.97.102) and System.Net.Dns.GetHostEntry = servername1.com
REMOTE_HOST (10.196.97.102) and System.Net.Dns.GetHostEntry = servername2.com
Request.UserHostName (10.196.97.102) and System.Net.Dns.GetHostEntry = clientname1.com
NET implementation of GetHostByName is (System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName()).
What is Virtual IP and its uses
The virtual IP address feature provides a unique IP address to each session. Moreover the virtual loopback feature allows to configure applications that depend on communications with localhost (127.0.0.1 by default) to use a unique virtual loopback address in the localhost range (127.*).
Certain applications, such as CRM and Computer Telephony Integration (CTI), use an IP address for addressing, licensing, identification, or other purposes and thus require a unique IP address or a loopback address in sessions. Other applications may bind to a static port, so attempts to launch additional instances of an application in a multiuser environment will fail because the port is already in use. For such applications to function correctly in a XenApp environment, a unique IP address is required for each device.
How to Set up and Configure Virtual IP for XenApp 6.x : http://support.citrix.com/article/CTX137163
How Virtual IP works : http://docs.citrix.com/en-us/xenapp-and-xendesktop/7-6/xad-deliver-virtual-ip.html
IP virtualization on RDP : https://technet.microsoft.com/en-us/library/dd759263.aspx