将当前mac地址转换为整数加n后重新转换为Mac地址

将当前Mac转换为整数加1后重新转换为Mac,就解决了进位问题

#include <stdio.h>
#include <stdlib.h>
#include <string.h>// 将 MAC 地址转换为整数
unsigned long long mac_to_int(char *mac) {char mac_str[18];strcpy(mac_str, mac);char *ptr = strtok(mac_str, ":");unsigned long long mac_int = 0;while (ptr != NULL) {mac_int = (mac_int << 8) + strtoul(ptr, NULL, 16);ptr = strtok(NULL, ":");}return mac_int;
}// 将整数转换为 MAC 地址
void int_to_mac(unsigned long long mac_int, char *mac) {sprintf(mac, "%02llX:%02llX:%02llX:%02llX:%02llX:%02llX",(mac_int >> 40) & 0xFF, (mac_int >> 32) & 0xFF, (mac_int >> 24) & 0xFF,(mac_int >> 16) & 0xFF, (mac_int >> 8) & 0xFF, mac_int & 0xFF);
}int main() {char current_mac[] = "00:11:22:33:44:55";unsigned long long mac_int = mac_to_int(current_mac);mac_int += 1;char new_mac[18];int_to_mac(mac_int, new_mac);printf("当前 MAC 地址:%s\\n", current_mac);printf("加1后的 MAC 地址:%s\\n", new_mac);return 0;
}

情形2

#include <stdio.h>
#include <stdint.h>typedef uint8_t u8;// 将 MAC 地址转换为整数
uint64_t mac_to_int(u8 source_mac[6]) {uint64_t mac_int = 0;for (int i = 0; i < 6; i++) {mac_int = (mac_int << 8) + source_mac[i];}return mac_int;
}// 将整数转换为 MAC 地址
void int_to_mac(uint64_t mac_int, u8 dest_mac[6]) {for (int i = 5; i >= 0; i--) {dest_mac[i] = mac_int & 0xFF;mac_int >>= 8;}
}int main() {u8 source_mac[6] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55};uint64_t mac_int = mac_to_int(source_mac);mac_int += 1;u8 new_mac[6];int_to_mac(mac_int, new_mac);printf("当前 MAC 地址:");for (int i = 0; i < 6; i++) {printf("%02X:", source_mac[i]);}printf("\\n");printf("加1后的 MAC 地址:");for (int i = 0; i < 6; i++) {printf("%02X:", new_mac[i]);}printf("\\n");return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/777574.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【React】onClick点击事件传参的4种方式

记录React onClick 点击事件传参的 4 种方式 方式一&#xff1a;使用内联箭头函数 import React, { MouseEvent } from "react";function App() {const handleClick (event: MouseEvent<HTMLButtonElement>, name: string) > {console.log(event)console.…

2024蓝桥杯每日一题(背包2)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一&#xff1a;包子凑数 试题二&#xff1a;砝码称重 试题三&#xff1a;倍数问题 试题一&#xff1a;包子称重 【题目描述】 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 N 种蒸笼&#xf…

解决 docker swarm 节点容器无法获取客户端真实IP

下载工具 https://github.com/sangbobo/docker-ingress-routing-daemon 下载代码 将docker-ingress-routing-daemon放到/usr/bin下 mv docker-ingress-routing-daemon chmod x docker-ingress-routing-daemon设置开启自启 vi /etc/systemd/system/dird.service填入内容 [U…

R语言做两次分类,再做两两T检验,最终输出均值和pvalue

1.输入文件&#xff1a; 2.代码&#xff1a; setwd("E:/R/Rscripts/rG4相关绘图")# 加载所需的库 library(tidyverse)# 读取CSV文件 data <- read.csv("box-cds-ABD-不同类型rg4-2.csv", stringsAsFactors FALSE)# 组合Type1和Type2&#xff1a;通过…

新装debian常用操作

时间ntp apt-get update apt-get install ntp #编辑配置 nano /etc/ntp.conf填写内容如下&#xff1a; server your-ntp-server #(可选&#xff09;如果您的网络中有本地的 NTP 服务器&#xff0c;您可以添加以下行以使用本地服务器 server your-local-ntp-server iburst #重…

unity 2D游戏使用navmashagent遇到的问题

问题描述&#xff1a; 在2D游戏中使用navmashagent来导航的时候&#xff0c;navmashagent会出现x,y轴旋转&#xff0c;且在代码aweak.start中重置依然用的问题。 解决方法 agent.updateRotation false; agent.updateUpAxis false; 解释以下这两个参数 updateRotation up…

新版 Redis 不再“开源”,对使用者都有哪些影响?

2024年3月20日&#xff0c;Redis Labs 的一个重大声明震惊了开源社区&#xff1a;从 Redis 7.4 版本开始&#xff0c;Redis 将不再遵循原有的 BSD 开源协议&#xff0c;而是转向 RSALv2 和 SSPLv1 的双重许可机制。这一变化标志着 Redis 在 OSI&#xff08;开放源代码促进会&am…

以Monkey为例全方位解析App压力测试的关键要点

概念解读&#xff1a; 以Monkey为例&#xff0c;全方位解析App压力测试的关键要点主要包括以下几个方面&#xff1a; 一、Monkey工具概述 Monkey是Android系统自带的一个命令行工具&#xff0c;用于生成伪随机用户事件流来对应用程序进行压力测试。通过发送大量的随机事件到…

大数据学习-2024/3/28-excel文件的读写操作

借助第三方模块:inxlrd,xlwt pip 第三方模块包管理工具 –> winr --> cmd --> 打开操作系统 –> python --> 查看默认的解释器版本 --> exit() –> pip list --> 查看第三方模块的列表 pip36 list --> 查看3.6版本安装的第三方模块列表 –> pip[…

iOS —— 初识KVO

iOS —— 初始KVO KVO的基础1. KVO概念2. KVO使用步骤注册KVO监听实现KVO监听销毁KVO监听 3. KVO基本用法4. KVO传值禁止KVO的方法 注意事项&#xff1a; KVO的基础 1. KVO概念 KVO是一种开发模式&#xff0c;它的全称是Key-Value Observing (观察者模式) 是苹果Fundation框架…

[LeetCode][LCR187]破冰游戏——约瑟夫环

题目 LCR 187. 破冰游戏 社团共有 num 位成员参与破冰游戏&#xff0c;编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target&#xff0c;从 0 号成员起开始计数&#xff0c;排在第 target 位的成员离开圆桌&#xff0c;且成员离开后从下一个成员开始计…

支持MacOS苹果操作系统的网卡你用过吗?

Marvell AQC113以太网控制器支持苹果操作系统&#xff08;MacOS&#xff09;&#xff0c;进一步扩展搭载了AQC113设备的应用领域。 众所周知&#xff0c;苹果操作系统应用生态完善&#xff0c;是业内备受瞩目的巨头级操作系统&#xff0c;其应用领域覆盖了游戏、社交、娱乐、工…

UE小:基于UE5的两种Billboard material(始终朝向相机材质)

本文档展示了两种不同的效果&#xff0c;分别是物体完全朝向相机和物体仅Z轴朝向相机。通过下面的演示和相关代码&#xff0c;您可以更加直观地理解这两种效果的差异和应用场景。 1. 完全朝向相机效果 此效果下&#xff0c;物体将完全面向相机&#xff0c;不论相机在哪个角度…

STM32学习和实践笔记(3): 使用库函数点亮LED后的学习总结

依照教程&#xff0c;做完了第一个试验&#xff0c;使用库函数点亮LED&#xff0c;如下: 总结一下一些要点&#xff1a; 一&#xff0c;要记得指明各头文件的查找路径&#xff0c;方法如下图&#xff1a; 二&#xff0c;使用库函数来编程相当方便高效&#xff0c;要学会查找对…

Perl基本语法

变量声明&#xff1a;Perl的变量使用特殊符号&#xff08;如$、、%&#xff09;来标识其类型。例如&#xff0c;$表示标量&#xff08;scalar&#xff09;变量&#xff0c;表示数组&#xff08;array&#xff09;变量&#xff0c;%表示哈希&#xff08;hash&#xff09;变量。 …

八大技术趋势案例(云计算大数据)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…

QT控件之输入窗口控件

Qt Designer窗口部件提供的面板中&#xff0c;提供了16种输入部件 &#xff08;1&#xff09;QComboBox继承QWidget类&#xff0c;被QFontComboBox类继承。通常用于用户显示选项列表的 方法&#xff0c;这种方法占用最少的屏幕空间。 &#xff08;2&#xff09;QFontComboBox继…

CI/CD实战-jenkins结合ansible

配置主机环境 在jenkins上断开并删除docker1节点 重新给master添加构建任务 将server3&#xff0c;server4作为测试主机&#xff0c;停掉其上后面的docker 在server2&#xff08;jenkins&#xff09;主机上安装ansible 设置jenkins用户到目标主机的免密 给测试主机创建用户并…

每日OJ题_子序列dp①_力扣300. 最长递增子序列

目录 力扣300. 最长递增子序列 解析代码 力扣300. 最长递增子序列 300. 最长递增子序列 难度 中等 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素…

百度智能小程序源码系统简洁版 SEO关键词排名推广优化 带完整的安装代码包以及搭建教程

移动互联网的快速发展&#xff0c;小程序以其轻量级、无需下载、即用即走的特点&#xff0c;迅速成为了各大平台争相推广的重要产品形态。百度智能小程序作为百度生态下的重要一环&#xff0c;凭借其强大的流量入口和丰富的功能组件&#xff0c;为开发者提供了广阔的创作空间。…