2016-07-13 11 views
0

Ich programmiere einen HTTP-Server. Es merkt sich die angemeldeten Benutzer mit ihren IP-Adressen. Es funktioniert gut im privaten Netzwerk mit 192.168 .... IPs. Aber wenn ich es auf den öffentlichen Server austrage und mich über Google Chrome verbinde, merke ich, dass sich meine Client-IP mitten in einer Seitenanfrage ändert. Es passiert nicht einmal am Tag oder so, aber die ganze Zeit. Daher kann mein Dienst seine Aufgabe nicht richtig erfüllen, da der Benutzer ständig "ausgeloggt" wird.Wie geht man mit dynamischen IP-Adressen von Clients auf einem HTTP-Server um?

Kann mir bitte jemand erklären, wie und warum das passiert? Meine beste Vermutung ist, dass der ISP mir eine neue dynamische IP gibt. Ich weiß von zu Hause aus, dass sich das IP nicht so oft ändert. Aber jetzt bin ich bei der Arbeit und es gibt viele andere Benutzer, die ins Internet gehen.

Falls das völlig normal ist, was kann ich tun, um mich an meine Kunden zu erinnern?
Arbeiten mit IP-Adressen falsch? Muss ich Cookies oder Sitzungen verwenden?


Server-Logs:

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

(Ich bin mir nicht sicher, ob diese Frage auf Stackoverflow gehört, aber ich weiß es nicht besser ...)

Antwort

1

-Tracking Benutzer nach IP-Adresse wird als schlechte Praxis angesehen. Es führt zu einer Vielzahl von Problemen - zum Beispiel können sich IP-Adressen in Ihrem Fall sehr leicht ändern und sind inkonsistent. Manchmal haben Sie auch viele Benutzer, die von derselben IP-Adresse stammen. Bis vor kurzem hatten einige Länder sogar eine IP-Adresse für das ganze Land zugewiesen.

Eine gängige Praxis ist die Verwendung HTTP sessions. Mit ihnen können Sie Benutzer sehr genau verfolgen und es gibt bereits eine Vielzahl von Infrastrukturen und Bibliotheken für ihre Verwaltung.

+0

Danke für die Info. Obwohl der Wiki-Block, mit dem du verlinkt hast, nicht von [HTTP-Sitzungen] (http://stackoverflow.com/a/11236320/1442225) spricht, auf die du dich (wahrscheinlich) beziehst. – Bitterblue

+0

Sie haben Recht. Ich werde den Link reparieren. – matanso