如何处理HTTP服务器上客户端的动态IP地址?

时间:2016-07-13 15:35:37

标签: http server ip

我正在编写HTTP服务器。它会记住使用其IP地址登录的用户。它在192.168 .... IP的专用网络上工作正常。但是,当我将其推出到公共服务器并通过谷歌Chrome连接时,我注意到我的客户端IP在页面请求中间正在发生变化。它不是每天都会发生一次,而是所有。因此,我的服务无法正常工作,因为用户经常被"退出"。

有人可以解释一下这种情况发生的原因和原因吗?我最好的猜测是ISP正在给我一个新的动态IP。我从家里知道IP经常不会改变。但现在我正在工作,还有很多其他用户上网。

如果这完全正常,我该怎么做才能记住我的客户?
使用IP地址错了吗?我必须使用cookie或会话吗?

<小时/> 服务器 - 记录:

04:41:50: server started at 1__.1__.1__.1__:80 04:42:56: client connected: 217.224.68.88:28439 04:42:56: -> GET request: / 04:42:56: client connected: 217.224.68.88:28437 04:42:56: client connected: 217.224.68.88:28436 04:42:56: client connected: 217.224.68.88:28395 04:42:56: client connected: 217.224.68.88:28438 04:42:56: client connected: 217.224.68.88:28394 04:42:56: -> GET request: /css/style.css 04:42:56: -> GET request: /js/basics.js 04:42:56: -> GET request: /js/login.js 04:42:56: -> GET request: /js/md5.js 04:42:56: -> GET request: /js/script.js 04:42:56: client connected: 217.91.48.78:28396 04:42:56: -> GET request: /js/tree-view.js 04:42:56: client connected: 217.224.68.88:28399 04:42:56: -> GET request: /js/sprites.js 04:42:57: client connected: 217.91.48.78:28397 04:42:57: -> POST request: LoginNeeded() 04:42:57: client connected: 217.91.48.78:28386 04:42:57: -> GET request: /favicon.ico 04:42:57: client connected: 217.91.48.78:28387 04:42:57: client connected: 217.91.48.78:28384 04:42:57: -> GET request: /images/xxx-logo.png 04:42:57: -> GET request: /images/image.png

(我不确定这个问题是否属于Stackoverflow,但我不知道更好......)

1 个答案:

答案 0 :(得分:1)

按IP地址跟踪用户被视为不良做法。它会导致大量问题 - 例如,在您的情况下,IP地址可能非常容易更改并且不一致。此外,有时您有许多来自相同IP地址的用户。直到最近,一些国家甚至为整个国家分配了一个IP地址。

更常见的做法是使用HTTP sessions。它们可以让您非常准确地跟踪用户,并且已经存在许多用于管理的基础架构和库。