2012-02-22 51 views
2

我们如何识别内联网上不同的计算机/设备? 这可以使用cookie,但这并非万无一失。 我期待找到本地IP地址的线路上的东西。 如果您提到将其与Intranet应用程序集成所需的某些工具(库),那将会很棒。该应用程序是用Python(Django)设计的。如何识别内联网上的计算机?

+3

也许MAC地址?请参阅http://comments.gmane.org/gmane.comp.python.django.user/136648。 – 2012-02-22 15:04:42

+1

如果你运行你自己的DNS并且(DHCP或者每个人都有静态IP)并且可以信任没有机器被篡改或欺骗的安全性,那么简单的IP->主机查找就足够了。 – platinummonkey 2012-02-22 15:08:53

+0

@FrédéricHamidiMAC地址只有在服务器和客户端位于同一网段时才有用。 – tMC 2012-02-22 16:01:58

回答

0

您可以从HttpRequest对象获取客户端(连接到Web服务器的计算机)IP地址。如果你的Django视图是def MyView(request):,你可以从request.META.get('REMOTE_ADDR')获得IP。那是你在找什么?

0

你可以看看上的Django的HttpRequest的文档:https://docs.djangoproject.com/en/dev/ref/request-response/

在那里,你会发现,你可以知道与使用request.META您的视图或中间件请求对象的用户的远程IP地址[“REMOTE_ADDR”]

我在一个多宿主服务器使用这个内部局域网的请求来到一个本地IP地址和公共请求转到一个公共IP地址,那里比较REMOTE_ADDR到我的内部开始局域网地址我可以知道它是否是一个内部请求。

+0

单独使用IP地址的问题是,它们在基于DHCP的网络上可能会更改。作为一个DHCP网络用户,我可以通过更改我的NIC MAC地址来强制更改我的IP地址。 – tMC 2012-02-22 17:34:17

+0

你说得对,我的回答主要是确定用户是否在内部网中。不是因为他需要唯一地识别它们中的每一个。 MAC地址更可靠,但也有更换MAC的方法,例如来自Laptops的用户有时可以通过无线方式连接,并在线路上连接一段时间。我想这取决于用户可以接受的错误概率级别。 – Xbito 2012-02-22 18:18:49

相关问题