美文网首页
Golang 随机生成ipv4和ipv6

Golang 随机生成ipv4和ipv6

作者: L白水飘萍 | 来源:发表于2019-06-26 20:28 被阅读0次

随机生成ipv4

我们知道在计算机中每一个ipv4实际上都可以对应一个uint32的数,所以随机生成一些ip,实际上就是随机生成一些uint32的数。

type IPv4Int uint32

func (i IPv4Int) ip() net.IP {
    ip := make(net.IP, net.IPv6len)
    copy(ip, net.IPv4zero)
    binary.BigEndian.PutUint32(ip.To4(), uint32(i))
    return ip.To16()
}

func RandomIpv4Int() uint32 {
    return rand.New(rand.NewSource(time.Now().UnixNano())).Uint32()
}       

随机生成ipv6

type IPv6Int [2]uint64 

func RandomIpv6Int() (result [2]uint64) {
    result[0] = rand.New(rand.NewSource(time.Now().UnixNano())).Uint64()
    result[1] = rand.New(rand.NewSource(time.Now().UnixNano())).Uint64()
    return result 
}

func RandomIPv6(num int) []string {
    result := make([]string, 0)
    for i := 0; i < num; i++ {
        ipInt := IPv6Int(RandomIpv6Int())
        ip := ipInt.ip()
        result = append(result, ip.String())
    }
    return result
}

相关文章

  • Golang 随机生成ipv4和ipv6

    随机生成ipv4 我们知道在计算机中每一个ipv4实际上都可以对应一个uint32的数,所以随机生成一些ip,实际...

  • 一文读懂 IPv4 到 IPv6 的过渡技术

    在介绍 IPv4 到 IPv6 过渡技术之前,我们先来简单了解一下 IPv4 和 IPv6。什么是 IPv4?IP...

  • Internet地址结构

    IPv4 & IPv6 表示 IP 地址有两种标准:IP版本4 (IPv4) 和 IP版本6 (IPv6)。所有有...

  • 搭建IPV6测试环境

    搭建环境前先对IPv4 和 IPv6有个大致了解: IPv4 和 IPv6的直观区别就是 IP 地址前者是 .(d...

  • IPv6地址

    前言 常用的IP协议版本有IPv4和IPv6,前面介绍了IPv4地址,本文介绍IPv6地址。IPv6是为了解决32...

  • 用上下文协议写一个tcp连接

    ipv4 版 ipv6版

  • 区别pv4和ipv6

    ipv4和ipv6的区别有哪些?大家可以通过下文来了解ipv4和ipv6的区别,我们在连接无线网络是会出现ipv4...

  • golang踩坑---批量生成随机数重复问题

    今天项目里面遇到一个问题,一个业务需要动态生成多个随机数和随机字符串,都知道golang中生成随机数的核心是设置随...

  • iOS ipv4和ipv6

    IPv6的网络下,API 中直接使用 IPv4为什么不通?? 首先IPv6网络下只能访问IPv6站点,IPv4下只...

  • 无法访问Internet的解决方法

    我先去检查了一下网络状态,发现ipv4和ipv6都没有连接上 然后我们需要连接上ipv4和ipv6 1.以管理员身...

网友评论

      本文标题:Golang 随机生成ipv4和ipv6

      本文链接:https://www.haomeiwen.com/subject/gsphcctx.html