Request.ServerVariables(“REMOTE_ADDR”)为公司内外的多个登录检索相同的IP

时间:2010-09-09 17:31:22

标签: .net vb.net ip-address request.servervariables

我被要求编写代码来跟踪我公司在.NET中的一个在线应用程序的访问者的IP地址。这实际上是我做过的第二个,去年年底做了另一个网站。我现在注意到了,现在我又注意到我有时会得到相同的IP地址,因为我知道的是另一个盒子.....有时候是一个同事,有时甚至不是这个建筑物中的盒子。代码非常简单,这是我获取地址的方式:

Dim IPAddress As String = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IPAddress = "" Then IPAddress = Request.ServerVariables("REMOTE_ADDR")

我在用户登录时将结果记录到数据库中。我今天早上在我的开发盒上测试产生了127.0.0.1 .....很好,就像我预期的那样。当我在我们的登台服务器上部署代码时,我得到了我的实际IP地址(当我看到它时,我已经看到它足够了解它)。一切都很好......但是我们QA小组的一位同事进行了一些测试,并在数据库中记录了我的IP地址。我确信我们不会分享这个地址。

我还记得在我第一次部署时看到这一点,当时美国各州的客户的交易记录了我的IP地址。我没有看到的东西.....有人可以告诉我这是怎么回事吗?这几乎就像缓存了事务标题,后续调用没有获取新用户的信息。

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

您看到的很可能是路由器的IP地址。在Web应用程序上跟踪用户的更好方法是使用cookie来标记它们。 [有点像在树林中标记野生动物。]然后,您可以使用Cookie中的ID在回访时识别它们。