我被要求编写代码来跟踪访问我公司的 .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 地址记录下来。我没有看到任何东西......有人可以告诉我这是怎么回事吗?几乎就像正在缓存事务标头并且后续调用没有获取新用户的信息。
有任何想法吗?谢谢!