如何根据IP地址判断是IPv4还是IPv6

news/2024/12/5 8:43:06/

IPv4地址的书写形式为:“192.168.0.1”

IPv6地址的书写形式为:“2001:DB8:85A3:8D3:1319:8A2E:370:7344”

给你一个IP地址,它有三种可能:IPv4、IPv6、既不是IPv4也不是IPv6的无效地址。所以,如果用函数ipGetAddressAsNumber,只能判断是不是ipv4,编写如下函数:

int ReportIpv4Version(char ipv4String[])
{dword ipNumber;ipNumber = ipGetAddressAsNumber(ipv4String);if (ipNumber == 0xFFFFFFFF) return 1;else return 0;
}

如果用函数ipGetAddressAsArray,只能判断是不是ipv6,编写如下函数:

int ReportIpv6Version(char ipv6String[])
{byte ipv6Array[16];dword res;res = ipGetAddressAsArray(ipv6String, ipv6Array);if (res == 0xFFFFFFFF) return 1;else return 0;
}

所以,如果想判断IP地址是IPv4还是IPv6,可以分别调用上面的两个函数,哪个返回值为1,说明是哪种IP类型。如果都是0,说明此IP地址为无效地址

当然,上面的两个函数可以合并到一起:

int ReportIpVersion(char ipString[])
{byte ipv6Array

http://www.ppmy.cn/news/29254.html

相关文章

数据结构:堆的实现与建堆时间复杂度分析

目录 前言 一.堆的介绍 1.堆的本质 2.堆的分类 二.堆的实现(以小根堆为例) 1.关于二叉树的两组重要结论: 2.堆的物理存储结构框架(动态数组的简单构建) 3. 堆元素插入接口(以小根堆为例) 堆尾元素向上调整的算法接口: 4.堆元素插入接口测试 5.堆元素插入…

原生javascript手写一个丝滑的轮播图

通过本文,你将学到: htmlcssjs 没错,就是html,css,js,现在是框架盛行的时代,所以很少会有人在意原生三件套,通过本文实现一个丝滑的轮播图,带你重温html,css和js基础知识。 为什么选用轮播图做示例&…

【LeetCode】剑指 Offer(13)

目录 题目:剑指 Offer 31. 栈的压入、弹出序列 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 31. 栈…

英飞凌TCxxx实战系列01_Alarm处理

目录 1.概述2. Alarm内部处理2.1关联的寄存器2.2 Alarm设置case3. SMU外部处理3.1 关联的寄存器4. WDT Alarm的特殊处理4.1 看门狗超时测试4.2 RecoveryTimer相关的Alarm1.概述 当MCU运行出现问题,如MCU温度过高、过低,看门狗超时等会触发一个Alarm,当SMU收到Alarm信号后,…

三天吃透Redis面试八股文

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

小家电品牌私域增长解决方案来了

小家电品牌的私域优势 01、行业线上化发展程度高 相对于大家电动辄上千上万元的价格,小家电的客单价较低。而且与大家电偏刚需属性不同的是,小家电的消费需求侧重场景化,用户希望通过购买小家电来提高自身的生活品质。这就决定了用户的决策…

安卓开发到底是做什么的

前言 在某平台看到了这样一个问题: 要知道,安卓开发是当前软件行业中的一个热门方向,它涉及到使用 Java 或 Kotlin 语言开发应用程序,运行在安卓操作系统上的手机、平板电脑、电视等设备上。在过去的几年中,随着智能…

FPGA实现Flash读写操作

一. 简介 本篇文章所使用的Flash型号为M25P16,是ST公司的一款(好像还有一款同名的,是别的公司的)。容量为16Mbit,SPI接口,时钟速率可达50Mhz。要想完成对Flash的读写擦除操作,只需要弄懂两点即可:SPI时序 …