php - 如何将 IP 号码范围定义为变量
问题描述
我想在 php 中将 IP 号码范围设置为一个名称
如何在 PHP 中以正确的方式写下一行?
$block_renge = array("192.168.*.*", "10.10.*.*");
我希望 * 是任何数字 (0-255) 。有人可以帮助我吗?
然后我用下面的代码检查IP:
if ( ( in_array( $ip_address, $block_renge ) ) ) {
// do some stuff
//$ip_address is the customer ip address
也许使用 preg_match 我们可以做到这一点?
解决方案
function ip_range($from, $to) {
$start = ip2long($from);
$end = ip2long($to);
$range = range($start, $end);
return array_map('long2ip', $range);
}
以上将两个 IP 地址转换为数字(使用 PHP 核心函数),创建一个数字范围,然后将该数字范围转换为 IP 地址。
如果您希望它们用空格分隔,只需implode()
结果即可。
然后你可以使用
if (in_array($ip, $ip_range)){ //...
推荐阅读
- java - spark中读取数据库的执行时间
- ios - 键盘向上滑动时将 UIView 固定到屏幕顶部
- c++ - 模板的静态成员变量是定义的还是专门的?
- swift - SwiftUI - 无法呈现 jsonData
- mqtt - Paho MQTT 客户端缓存消息在 Mosquitto 服务器上的意外行为
- php - 如何在 Laravel 中查询两个表
- dart - Dart Map 排序 - 基于列表的值
- ruby - 拦截输出到 STDERR
- sql - SQL 将三列合二为一
- javascript - 当我尝试 forEach() "Function returned undefined, expected Promise or value" "时,Firebase Cloud Function 给出错误