C# Citrix客户端的位置或IP地址

C# Citrix客户端的位置或IP地址,c#,geolocation,location,citrix,C#,Geolocation,Location,Citrix,这是一个有趣的项目: 我们有一个通过Citrix实体店在许多地方运行的遗留系统 我们为Citrix使用一个大型服务器场,因此当您登录时,您永远不知道将连接到哪个服务器 我们希望能够以编程方式确定用户所在的存储区 我在想,如果Citrix提供了一种使用位置服务的方法,那么我们也许可以使用它。诀窍是我需要物理客户端机器的位置,而不是托管应用程序的随机Citrix会话 有办法吗?是否有其他方法帮助关联位置 在特定的用例中,可以获取客户端设备的位置。适用于Windows应用程序的移动SDK支持确定位置。

这是一个有趣的项目:

我们有一个通过Citrix实体店在许多地方运行的遗留系统

我们为Citrix使用一个大型服务器场,因此当您登录时,您永远不知道将连接到哪个服务器

我们希望能够以编程方式确定用户所在的存储区

我在想,如果Citrix提供了一种使用位置服务的方法,那么我们也许可以使用它。诀窍是我需要物理客户端机器的位置,而不是托管应用程序的随机Citrix会话


有办法吗?是否有其他方法帮助关联位置

在特定的用例中,可以获取客户端设备的位置。适用于Windows应用程序的移动SDK支持确定位置。但是,它需要移动设备,并且服务器平台必须是XenApp 6.5或XenDesktop 7.0或更高版本。 该界面与Windows 7 location API相同,但它与远程移动设备一起工作以确定位置。 以下是如何使用API的视频:


根据您的配置,您很可能拥有台式计算机。如果这是真的,您可能需要研究其他解决方案。最明显的途径是使用客户端IP地址。如果每个存储都有不同的客户机IP地址范围,那么IP地址和存储之间的映射就相当容易了。可以获取客户端IP地址:

也许您应该使用下拉菜单修改登录过程,以选择用户的存储区?是的。@Andrew OpenGeoCode它现在实际上就是这么做的,但它会引起真正的问题。店员经常在商店之间流动。他们经常选择错误的商店,通常是他们的家里的商店,而不是他们正在参观的那家,这会在月底对下游造成严重破坏。我们正在寻找一种自动解决存储问题的方法。应用程序是用什么编程语言/环境编写的?我不熟悉Citrix,但通过谷歌搜索,听起来它们好像是在Windows上运行的。如果您是在.Net中编写的,Citrix似乎提供了一个地理定位程序集:嗨,安德鲁:对不起,我错过了您的评论。它在c/.NET4.0中,但如果需要,我可以p/invoke。在Hi Jeff中可以找到使用SDK进行定位的程序示例-您的链接看起来非常有希望。有一个潜在的问题-如果我只获得客户端计算机的IP,它可能是NAT后面的192.168.1.x地址-我可能真的需要存储网关的IP。有没有办法与客户端机器上运行的exe进行通信?如果有办法,我可以在客户端机器上删除一个非常简单的服务,以获取信息并使其可用于citrix会话。有可能获得分配给客户端机器的真实地址。请检查这个。最相关的答案是关于WinStationGetRemoteIPAddress。如果要尝试访问客户端exe,则该操作将不起作用。它必须是给定给服务器的RDP/HDX协议中的某个内容。我昨天做了一些实验,找到了客户端IP地址。不管好坏,它都是一个VPN IP地址。另外,请记住,您可以更改网关上的DHCP以提供唯一的IP地址。谢谢,Jeff。我来看看。听起来我们应该能够通过每个商店的独特ip范围和使用该API来实现这一点。