我有一个小的网络功能,只有当用户在办公室时才能运行。但问题是我们的互联网服务提供商定期更改其IP,我无法跟踪它。我们的办公室有Windows 7系统,他们没有任何静态IP。我甚至无法设置静态IP,因为它会妨碍互联网提供商设置,并将停止连接到互联网。我现在卡住了。有没有办法可以确保一个人只在他使用该功能时才在办公室?
答案 0 :(得分:1)
最可靠的方法是使用MAC地址进行身份识别,因为IP可以更改,MAC地址更难以欺骗且不会更改。它是网卡的“序列号”。因此,除非他们将卡带回家,否则他们将无法访问它。请阅读 this post
答案 1 :(得分:1)
您可以使用dyndns获取当前的ip。 动态DNS允许ypou将主机名重新修改为动态IP。
因此,如果您从未知的ip或更多时间收到请求,那么自上次请求以来已经过了x秒,您可以使用gethostbyname来检索办公室IP。
免费动态DNS:
获取IP:
$ip = gethostbyname('http://sample.dnsdynamic.org/');
答案 2 :(得分:1)
这样做的一种方法是设置服务器,使其暴露2个服务 - “A”具有“特殊办公室功能”可用,“B”没有。
然后,设置网络安全性,以便只能通过办公室的VPN隧道访问服务A.
-
另一种方法可能是使用PKI - 使用访问服务A功能所需的证书安装办公室计算机。但是,虽然复杂,但具有足够权限和知识的用户仍可以复制证书并在家中安装。
答案 3 :(得分:0)
如果您的用户不是书呆子,您可以在办公室计算机中设置一个特殊的cookie,并在每次用户访问该应用程序时进行检查。
(如果您的用户知道设置和取消设置Cookie,则会失败,因为他们只会将此行为复制到他们的家中。)
此外,从办公室连接时,即使IP发生变化,仍然应该有一个特定的范围 IP,采样一些IP并检查重复模式。
答案 4 :(得分:0)
授权后,为您的办公室用户提供某种令牌。然后使用令牌确定是否授予访问权限。
令牌可以存储在办公室用户计算机上的cookie中,因此授权只进行一次。
答案 5 :(得分:0)
如果您可以访问办公室网络 - 您可以尝试配置您的服务器,这可以访问互联网,因此它会向所有请求(发送到您的服务器)添加一些令牌(cookie?)。你会在你的代码中检查它。