根据一个16进制字符组成的MAC地址,生成新的MAC地址|连续的16进制MAC|16进制MAC递增

本文介绍如何使用PHP根据一个MAC地址生成新的MAC地址,通过递归方法实现16进制的加法操作,处理16进制到10进制的转换,确保结果正确无科学计数法表示,适用于生成连续的16进制MAC地址。
摘要由CSDN通过智能技术生成

需求:根据一个MAC地址生成新的MAC地址(把MAC地址+1),PHP代码实现

function genMac($mac='DC4F22529F11'){
    $macLen=strlen($mac);

    $macArr=str_split($mac);
    $index=$macLen-1;
    $valueNowHex=$macArr[$index];
    $valueNow=hexdec($valueNowHex);
    $nextValue=$valueNow+1;

    function carry($macArr,$index){
        $macArr[$index]=0;
        $index--;
        if($index<0) return $macArr;

        $nextValue=hexdec($macArr[$index])+1;

        if($nextValue>=16){
            //进位
            $macArr = carry($macArr,$index);
        }else{
            $macArr[$index]=dechex($nextValue);
        }
        return $macArr;
    }

    if($nextValue>=16){
        $macArr = carry($macArr,$index);
    }else{
        $nextValue=hexdec($macArr[$index])+1;
        $macArr[$index]=dechex($nextValue);
    }

    return strtoupper(implode('',$macArr));
}
$
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值