当前位置: 首页 > 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

相关文章:

  • 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)--计算机系统概论
  • 接续驰援,中国政府援缅卫生防疫队出发赴缅
  • 沈辛成评《主动出击》丨科学普及,究竟需要靠谁主动出击
  • 全球建筑瞭望|与自然共呼吸的溪谷石舍与海边公共空间
  • 浙江、安徽公布一季度外贸数据,出口增速均达到两位数
  • 江苏东海县多个商家直播带货玉石珠宝以假充真、虚假宣传被整治
  • 习近平抵达金边对柬埔寨进行国事访问