【问题标题】:static or dynamic ips静态或动态ips
【发布时间】:2011-04-18 20:50:15
【问题描述】:

我经营这个网站,并且我批准人们访问该网站的一部分。我只想批准静态ip。如果我有一堆 IP,我如何确定它们是否是静态的?我可以做剩下的部分,但套接字库中可能有一些函数,或者可以让我编写该部分的脚本以查找用户是使用静态 IP 还是动态 IP。

谢谢!

Php/Js 也可以。

【问题讨论】:

  • 然后检查他们的 IP 是否在您的 DHCP 地址池中。如果没有更多信息,我真的无法提供任何真正的建议。
  • 我认为这是不可能的;加上基于IP的身份验证受IP address spoofing的约束。

标签: static-ip-address


【解决方案1】:

无法从本质上判断 IP 地址是静态分配的还是动态分配的。根据 IP 解析到的主机名,您可能会猜测它们是否是静态的,但没有任何确定性可以促进这一点。

您可以使用套接字模块将 IP 解析为主机名,并根据某种“最佳猜测”算法将它们标记为“静态”或“动态”,但这只是:最佳猜测。

这是一个使用随机 Verizon FiOS IP 地址的示例。这假设任何以“pool”开头的 IP 都是动态分配的。

>>> hostname = socket.gethostbyaddr('71.243.222.111')[0]
>>> if 'pool' in hostname: 
...     print hostname, 'is dynamic'
... 
pool-71-243-222-111.lsanca.fios.verizon.net is dynamic

您将很难确定所有各种命名约定,这绝不是一个完整的解决方案。

您可能想问自己,您首先要解决什么样的问题,以及按 IP 地址过滤访问是否提供了您需要的验证。

【讨论】:

    【解决方案2】:

    我会使用务实的解决方案:新帐户有几天的试用期。之后,他们只能从用于注册的同一 IP 登录。如果它们仍然具有相同的 IP,则很可能是静态的。

    【讨论】:

    • 这不是一个真正可靠的解决方案。例如,我的 ISP 没有给我静态 IP,每次我的调制解调器连接时,我都会得到一个不同的 IP。但是,如果我没有断开连接,我的 IP 可以保持数周不变,因为我的 ISP 不会每 24 小时自动断开连接。
    【解决方案3】:

    嗯,你没有问题,是吗?如果他们要求从 IP X 访问,你就给他们从 IP X 访问。如果事实证明它是动态的并且他们切换,他们就不再有访问权限。在实践中,动态 IP 无法访问 :)

    说真的,IP 分配类型的权限是用户正在访问的主机。因此,您需要询问用户它在他/她的配置中所说的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-27
      • 2012-02-19
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 1970-01-01
      • 1970-01-01
      • 2011-01-20
      相关资源
      最近更新 更多