【发布时间】:2019-02-06 00:30:50
【问题描述】:
我的系统包含一个第三方盒子,它存储 IP 地址并将它们与从我的 Web 界面发送的值进行比较。我有一个问题,用户将第三方盒子的网络掩码输入为 255.255.255.000,而盒子将其存储为 255.255.255.0。然而,下次盒子重新启动并被告知掩码包含 000 时,它会断定这些值不同,并更新其数据库并重新启动。并重新启动。并重新启动。
我的意图是通过将网络掩码以简化形式 255.255.255.0 存储在我自己的系统中来解决这个问题(作为另一个示例,将 010.001.002.005 存储为 10.1.2.5)。但我是 PHP 的新手。我尝试使用代码$mask = long2ip(ip2long($mask)) 将条目转换为标准化形式,但只得到了 0.0.0.0。我需要做一些特别的事情来将 IP 转换为 long 和 back 吗?有没有更好的方法来简化这个?
【问题讨论】:
-
为什么不按点使用explode() 并为每个元素进行int 类型转换(这将删除前导零)?
-
@ka_lin 正如我所说,我是 PHP 新手。您能否将其扩展为处理该字段的真实代码并将其添加为可能的答案?谢谢
-
为什么不在使用前验证用户输入?