php – 检查IP地址是否在网络中
发布时间:2020-12-13 17:10:07 所属栏目:PHP教程 来源:网络整理
导读:我正在寻找一个函数来确定给定的IPv4地址是否在给定的网络中. 它将类似于this;但是,如果没有必要,我不想安装完整的框架或重新发明轮子. 这个想法类似于以下内容: function IsInNetwork($givenIP,$networkIP,$netmask) { // ???}$valid = IsInNetwork("10.0.
我正在寻找一个函数来确定给定的IPv4地址是否在给定的网络中.
它将类似于this;但是,如果没有必要,我不想安装完整的框架或重新发明轮子. 这个想法类似于以下内容: function IsInNetwork($givenIP,$networkIP,$netmask) { // ??? } $valid = IsInNetwork("10.0.9.35","10.0.8.0","255.255.254.0"); – 编辑 – 在Rich Adams的帮助下,他向我指出了正确的方向并提出了以下建议: function IsInNetwork2($givenIP,$netmask) { $ipaddr = ip2long($givenIP); $netip = ip2long($networkIP); $netmask = (ip2long($netmask) * -1) + $netip; if ($ipaddr >= $netip && $ipaddr <= $netmask){ return true; } else { return false; } } 解决方法
像这样的东西应该工作,
function IsInNetwork($givenIP,$netmask) { return ((ip2long($givenIP) & ip2long($networkIP)) == ip2long($network)); } $valid = IsInNetwork("10.0.9.35","255.255.254.0"); // true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |