网关配置工具IPV6的报文解析有问题,应该怎么处理

##默认网关数据为0

            if (bIsIpv4 == true)
            {
                
                strIPv4Addr.Format(_T("%d.%d.%d.%d"), recvBuf[28 + offset], recvBuf[29 + offset], recvBuf[30 + offset], recvBuf[31 + offset]);
                p->m_ip_address_ctrl4.SetWindowTextW(strIPv4Addr);

                str.Format(_T("子网掩码=%s\n"), strIPv4Addr);
                p->LogMsg(str);

                strIPv4Addr.Format(_T("%d.%d.%d.%d"), recvBuf[32 + offset], recvBuf[33 + offset], recvBuf[34 + offset], recvBuf[35 + offset]);
                p->m_ip_address_ctrl5.SetWindowTextW(strIPv4Addr);

                str.Format(_T("默认网关地址=%s\n"), strIPv4Addr);
                p->LogMsg(str);
            }
            else
            {
                //ipv6的处理
                p->m_ip_address_ctrl4.SetWindowTextW(strIPv6Addr);
                strIPv6Addr.Format(_T("%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x"), 
                    recvBuf[28 + offset], recvBuf[29 + offset], recvBuf[30 + offset], recvBuf[31 + offset],
                    recvBuf[32 + offset], recvBuf[33 + offset], recvBuf[34 + offset], recvBuf[35 + offset],
                    recvBuf[36 + offset], recvBuf[37 + offset], recvBuf[38 + offset], recvBuf[39 + offset], 
                      recvBuf[40 + offset], recvBuf[41 + offset], recvBuf[42 + offset], recvBuf[43 + offset]);

                p->m_ip_address_ctrl5.SetWindowTextW(strIPv6Addr);

                str.Format(_T("默认网关地址=%s\n"), strIPv6Addr);
                p->LogMsg(str);

                offset += 8;
            }

##默认网关地址=0000:0000:0000:0000:0000:0000:0000:0000