静态或动态的ips

时间:2011-04-18 20:50:15

标签: static-ip-address

我运行此网站,并批准访问网站的某个部分供人们使用。我只想批准静态ips。如果我有一堆IP,我怎么知道它们是否是静态的?我可以做剩下的部分,但是套接字库中可能有一些功能,或者让我编写部件脚本以查找用户是否使用静态或动态IP。

谢谢!

Php / Js也会奏效。

3 个答案:

答案 0 :(得分:3)

无法确定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地址过滤访问是否提供了您需要的验证。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

严重的是,IP分配类型的权限是用户访问的主机。因此,您需要询问用户在其配置中的内容。