当前位置: 首页 > news >正文

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

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.dtcms.com/a/1047.html

相关文章:

  • js几种对象创建方式
  • Android TV UI开发常用知识
  • 【解锁技能】学会Python条件语句的终极指南!
  • 2023年“网络安全”赛项浙江省金华市选拔赛 任务书
  • 2023年全国最新二级建造师精选真题及答案9
  • 《金山区提信心扩需求稳增长促发展行动方案》的通知
  • 吉林大学 程序设计基础 2022级 实验复盘 2.23
  • 【Java】TCP网络编程(字节/符流)
  • Ubuntu 安装指定版本 Mysql,并设置远程连接(以安装mysql 5.5 为例)
  • STM32——毕设智能感应窗户
  • 前端面试题
  • 【LeetCode】剑指 Offer(11)
  • 华为OD机试模拟题 用 C++ 实现 - 寻找连续区间(2023.Q1)
  • 优雅的controller层设计
  • Echarts 每个柱子一种渐变色的象形柱状图
  • Liunx(狂神课堂笔记)
  • 2023软件测试工程师全新技术栈,吃透这些,起薪就是25k~
  • k8s新增节点机器,无法拉取和推送镜像的解决方案
  • AIX系统常见漏洞修复(exec、rlogin、rsh、ftp、telnet远端服务运行中)
  • 计算机组成原理(1)--计算机系统概论
  • 带你深入了解c语言指针后续
  • 单调栈(C/C++)
  • 「牛客网C」初学者入门训练BC139,BC158
  • ESP32设备驱动-MAX30100心率监测传感器驱动
  • SpringMVC常见面试题(2023最新)
  • Linux系统下搭建maven环境
  • java:自定义变量加载到系统变量后替换shell模版并执行shell
  • Apollo(阿波罗)分布式配置安装详解
  • chatgpt的原理 第四部分
  • Gehpi的网络布局