2009-06-25 7 views
2

Ich mache ein EventLog, das das Transaktionslog auf meiner Website protokolliert. Die Details des Protokolls enthalten die öffentliche IP-Adresse, von der aus die Transaktion erstellt wurde, sowie die lokale IP-Adresse (unter der öffentlichen IP-Adresse).Wie bekomme ich einen eindeutigen Client Identifier auf dem Server?

Ich habe Wege gefunden, um die öffentliche IP-Adresse zu erhalten, aber ich bin nicht in der Lage, die lokale IP-Adresse oder Maschine IP aus, wo die Transaktion gemacht wird.

Eine große Anzahl von Einträgen wird von Personen ausgeführt, die dieselbe Verbindung verwenden. dh 5 oder 10 Computer, die an dieselbe Verbindung angeschlossen sind.

Ich brauche die Maschine IP (192.168.0.1 für 1 System 192.168.0.2 für die nächsten) der Maschinen die Transaktionen machen zu finden und auch den Namen Computer-...

Ist das möglich

Antwort

4

Um zu verdeutlichen, möchten Sie die private IP-Adresse eines Clients, wenn der Client eine Verbindung über einen Router herstellt? Dann nein, es gibt keinen Weg dies zu tun.

Machst du das nur um zwischen verschiedenen Benutzern zu unterscheiden?

Können Sie eine andere Methode wie Cookies verwenden?

1

Wenn Ihr Client hinter einer NAT oder Firewall eine Verbindung herstellt, können Sie seine Adresse oder seinen Computernamen nicht zuverlässig ermitteln. Wenn Sie solche Informationen benötigen, sollte Ihr Protokoll sie als Teil der Anfrage anfordern und der Client-Rechner sollte sie freiwillig zur Verfügung stellen. Es gibt keine Möglichkeit, die bereitgestellten Informationen zu validieren (kurz, um eine vertrauenswürdige kryptografische Infrastruktur bereitzustellen, dh Sie bauen ein starkes Vertrauen in die Clientcomputer selbst auf).

1

Leider ist die Antwort nein. Kein moderner Browser wird diese private Adresse in der HTTP-Transaktion präsentieren. Der Router des Clients, der NAT (Network Address Translation) durchführt, bietet nur die IP-Adresse des öffentlichen Clients an, wenn er die IP-Verbindung herstellt.

0

Nun ja, wir tun dies nur zwischen den Computern zu unterscheiden zu wissen, wer die Einträge tut ...

Da euch sagen, dass die IP-Tracing nicht sehr zuverlässig ist dort alle anderen Methoden, die ich verwenden kann, um das Gleiche zu tun

Ich muss nur wissen, von welchem ​​Computer jeder Eintrag eingegeben wird.

würde Irgendwelche Vorschläge

+0

Sie sollten Ihre ursprüngliche Frage bearbeitet haben, um dies hinzuzufügen. Dies ist kein Diskussionsforum und dies ist keine Antwort. Es soll eine Antwort sein, aber es beantwortet Ihre Frage nicht. –

0

Sie machen die falsche Annahme willkommen sein, dass es einen Weg gibt, aus dem Computer wird jeder Eintrag eingegeben wissen ist. Niemand hat die Aufgabe sicherzustellen, dass diese Information existiert. Oft wird es nicht existieren.

Die einzige Möglichkeit, sicherzustellen, dass jeder Computer eindeutig identifiziert ist, besteht darin, dass Sie ihn identifizieren. Dies können Sie beispielsweise über Client-Zertifikate tun. Wenn Sie möchten, dass jeder Computer eine eindeutige Kennung hat, müssen Sie im Allgemeinen eine eindeutige Kennung erstellen und diese dann auf diesem Computer ablegen. Sie benötigen dann den Computer, um diese Kennung zurückzusenden.

Es gibt keine andere eindeutige Kennung für Computer.

0

Dies ist wahrscheinlich weit über, was Sie suchen, aber es macht für eine interessante Lektüre: Remote physical device fingerprinting

Diese Sie ein Remote-physisches Gerät ohne seine Zusammenarbeit vorstellen, über NAT oder was auch immer Sie können eindeutig identifizieren erlaubt .

Verwandte Themen