2012-02-22 6 views
2

イントラネット上の別個のコンピュータ/デバイスをどのように識別できますか? これはクッキーを使用して行うことができますが、それは絶対確実ではありません。 私は地方のIPアドレスを見つけるのに何かを期待しています。 イントラネットアプリケーションとの統合に必要ないくつかのツール(ライブラリ)について言及するとすばらしいことでしょう。このアプリケーションはPython(Django)で設計されています。イントラネット上のコンピュータを識別する方法は?

+3

おそらくMACアドレス? http://comments.gmane.org/gmane.comp.python.django.user/136648を参照してください。 –

+1

あなた自身のDNSと(DHCPまたは誰もが静的IPを持っている)いずれかのマシンが改ざんされたり偽装されたりしないというセキュリティを信じることができれば、単純なIP - >ホストルックアップで十分です。 – platinummonkey

+0

@FrédéricHamidiMACアドレスは、サーバーとクライアントが同じネットワークセグメント上にある場合にのみ役立ちます。 – tMC

答えて

0

HttpRequestオブジェクトからクライアント(Webサーバーに接続しているコンピュータ)のIPアドレスを取得できます。あなたのDjangoビューがdef MyView(request):なら、あなたはrequest.META.get('REMOTE_ADDR')からIPを得ることができます。それはあなたが探しているものですか? https://docs.djangoproject.com/en/dev/ref/request-response/あり

あなたがrequest.METAを使用して、ビューやミドルウェア上の要求オブジェクトを持つユーザーのリモートIPアドレスを知ることができることを見つけることができます:

0

あなたはDjangoの上のHttpRequestのドキュメントを見てみることができ["REMOTE_ADDR"]

私は内部LANの要求がローカルIPアドレスに来てパブリック要求がパブリックIPアドレスに行き、そこではREMOTE_ADDRを私の内部の始まりと比較するマルチホームサーバーでこれを使用しますLANアドレス私はそれが内部要求かどうかを知ることができます。

+0

IPアドレスだけを使用する問題は、dhcpベースのネットワーク上で変更される可能性が高いことです。 dhcpネットワークのユーザーとして、NICのMACアドレスを変更することで、自分のIPアドレスを強制的に変更することができます。 – tMC

+0

あなたは正しいです、私の答えは、ユーザーがイントラネットにいたかどうかを特定することに焦点を合わせました。彼等がそれぞれを一意に特定する必要があったという事実によるものではありません。 MACアドレスの方が信頼性が高いですが、MACを変更する方法もあります。たとえば、ラップトップからのユーザーは、ワイヤレスで接続することも、しばらくして接続することもできます。私はそれがユーザーが受け入れることができるエラー確率のレベルに依存すると思います。 – Xbito

関連する問題