首页 > 其他分享 >go 操作mac

go 操作mac

时间:2024-06-08 11:10:58浏览次数:14  
标签:err nil fmt MAC mac go 操作 buf

cilium 1.15.1

生成随机mac

package main

import (
	"crypto/rand"
	"fmt"
	"net"
)

// MAC address is an net.HardwareAddr encapsulation to force cilium to only use MAC-48.
type MAC net.HardwareAddr

// String returns the string representation of m.
func (m MAC) String() string {
	return net.HardwareAddr(m).String()
}

// GenerateRandMAC generates a random unicast and locally administered MAC address.
func GenerateRandMAC() (MAC, error) {
	buf := make([]byte, 6)
	if _, err := rand.Read(buf); err != nil {
		return nil, fmt.Errorf("Unable to retrieve 6 rnd bytes: %s", err)
	}

	// Set locally administered addresses bit and reset multicast bit
	buf[0] = (buf[0] | 0x02) & 0xfe

	return buf, nil
}

func main() {
	if mac, err := GenerateRandMAC(); err == nil {
		fmt.Println(mac)
	}
	if mac, err := GenerateRandMAC(); err == nil {
		fmt.Println(mac)
	}
}

标签:err,nil,fmt,MAC,mac,go,操作,buf
From: https://www.cnblogs.com/WJQ2017/p/18238437

相关文章

  • macbookrpro使用体验
    前言之前用的电脑是拯救者y70002020,用了四五年,年前就有换电脑的打算。计划就是买一个苹果电脑,在查看了挺多电脑,多方面对比后,最终还是买了Macbookpro。我买的笔记本的配置如下:购买14英寸的原因之前我的拯救者是15.6英寸的,背起来很沉,所以想换个14英寸的电脑。购买36GB内存的......
  • 数据库镜像 (SQL Server)操作模式
    数据库镜像会话以同步操作或异步操作运行。在异步操作下,事务不需要等待镜像服务器将日志写入磁盘便可提交,这样可最大程度地提高性能。在同步操作下,事务将在伙伴双方处提交,但会延长事务滞后时间。有两种镜像运行模式。一种是高安全性模式,它支持同步操作。在高安全性模式下,当会......
  • Go结构体对齐
    具体可以参考b站的幼麟实验室,很硬核typePstruct{ abool bint32 cint8 dint64 ebyte}varpPfmt.Printf("%v\n",unsafe.Sizeof(p)//32成员变量对齐方式为:min(8,1)=1,由于是第一个成员,偏移量为0即可,此时内存占位为:amin(8,4)=4,偏移量为4即可,此时内存占......
  • JSON及Python操作JSON相关
    JSON及Python操作JSON相关Json简介及Python操作Json相关示例。1.JSON概念及支持的数据类型1.1什么是JSON?JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。尽管JSON源于JavaScript,它与编程语言无关,目前被广泛应用于......
  • 【因果推断】【Introduction to Causal Inference from a Machine Learning Perspecti
    第一章动机:为什么你可能关心1.1辛普森悖论考虑一个纯粹假设的未来,有一种被称为COVID-27的新疾病在人类中流行。在这个纯粹假设的未来,有两种治疗方法已经被开发出来:治疗A和治疗B。治疗B比治疗A更稀缺,因此目前接受治疗A和治疗B的比例大致为73%/27%。在一个只关心最大限度......
  • 【启程Golang之旅】让文件操作变得简单
    欢迎来到Golang的世界!在当今快节奏的软件开发领域,选择一种高效、简洁的编程语言至关重要。而在这方面,Golang(又称Go)无疑是一个备受瞩目的选择。在本文中,带领您探索Golang的世界,一步步地了解这门语言的基础知识和实用技巧。目录初识文件IO的引入读取文件写入文件文件复制......
  • 【C++修行之道】类和对象(五)日期类的实现、const成员、取地址及const和取地址操作符重
    目录一、日期类的实现Date.h 1.1GetMonthDay函数(获取某年某月的天数) 问:这个函数为什么不和其他的函数一样放在Date.cpp文件中实现呢?1.2CheckDate函数(检查日期有效性)、Print函数(打印日期)1.3实现日期类的逻辑运算符重载<运算符的重载 ==运算符重载其他运算符重载......
  • Dragon_Knight_CTF-stack(栈迁移)
    Dragon_Knight_CTF-stack(栈迁移)程序的保护情况如下,可以看到没有开启pie保护Arch:amd64-64-littleRELRO:PartialRELROStack:NocanaryfoundNX:NXenabledPIE:NoPIE(0x3fe000)可以看道main函数也很简洁,只有一个0x10大小的溢出,程序给了libc,版......
  • Django上传图片时ImageField的max_length报错
    我使用的版本是Django4.2,有一个模型里定义了ImageField,以下面这个为例:classExample(models.Model)image=models.ImageField(blank=True,upload_to=my_image_path,)当我上传图片的时候,django返回了这样一个错误:Ensurethisfilenam......
  • 如何使用Go语言连接和操作数据库?
    文章目录1.安装MySQL驱动2.连接数据库3.执行查询4.执行插入、更新和删除操作在Go语言中,连接和操作数据库通常使用database/sql包,它提供了一个数据库抽象层,支持多种数据库引擎,如MySQL、PostgreSQL、SQLite等。下面我将以MySQL为例,详细讲解如何使用Go语言连接和......