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

IP地址转换

1.字符串转32bit网络字节序

inet_aton函数

int inet_aton(const char *cp, struct in_addr *inp);
cp指向字符串,支持如下格式:- a.b.c.d //192.168.9.1 0xC0.0xA8.011.1- a.b.c   //192.168.2305- a.b     //192.11012353- a       //3232237825
无效字符串返回0,不设置errno,成功返回1
inp:为NULL可用于IP地址合法性检测

inet_addr函数

in_addr_t inet_addr(const char *cp);
失败返回INADDR_NONE(0xFFFFFFFF),这就存在一个问题,cp指向255.255.255.255时返回的也是(0xFFFFFFFF),不能够区分出是否出错
其他和inet_aton相同

inet_pton函数

int inet_pton(int af, const char *restrict src, void *restrict dst);
af:支持AF_INET(IPv4)和AF_INET6(IPv6)
src:仅支持点分十进制
dst:为AF_INET时,dst类型为struct in_addr;为AF_INET6时,dst类型为struct in6_addr;不能为NULL
成功返回1 字符串无线返回0 af类型无效返回-1并设置errno(EAFNOSUPPORT)

2.32bit网络字节序转点分十进制

inet_ntoa函数

char *inet_ntoa(struct in_addr in);
函数返回地址指向静态区,注意线程安全问题

inet_ntop函数

const char *inet_ntop(int af, const void *restrict src, char dst[restrict .size], socklen_t size);
af:支持AF_INET(IPv4)和AF_INET6(IPv6)
src:指向待转换的地址
dst:转换后字符串的缓存区,不能为NULL
size:缓存区的大小 IPv4(INET_ADDRSTRLEN 16) IPv6(INET6_ADDRSTRLEN 46)
成功返回返回指向dst的指针 错误返回空并设置errno(可能的错误 EAFNOSUPPORT ENOSPC)
http://www.aitangshan.cn/news/689.html

相关文章:

  • Springboot+vue3 MinIO文件前端直传例子
  • 【刷题笔记】日照集训 Day3
  • GAS_Aura-The Gameplay Ability System
  • 深度解析10BASE-T1S PLCA的多节点通信效率
  • ESP32 + PCA9685(16通道 PWM 扩展模块)来驱动多个 9g 舵机
  • k8s 新版创建完 serviceaccount 后-- 不再生成 对应的--token
  • 验证码厂商对比及选型
  • debian更换NVIDIA 官方驱动
  • 经纬恒润推动汽车软件安全新生态,打造全流程质量协同新范式
  • 2025杭电多校第七场 矩形框选、伤害冷却比 个人题解 - CUC
  • 7 月 SeaTunnel 社区狂飙:新特性、强优化、贡献者满分输出
  • 在K8S中,假设一家基于整体架构的公司处理许多产品。现在,随着公司在当今规模化行业中的发展,其整体架构开始引起问题,如何看待公司从单一服务转向微服务并部署其服务容器?
  • GAS_Aura-Post Process Highlight
  • Host startup hook
  • 育儿计划
  • 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义处理方式
  • docker run 后报错/bin/bash: /bin/bash: cannot execute binary file
  • Proteus 9.0 SP2 安装使用图文指南 | EDA电路仿真软件
  • Claude Code使用指南
  • C++ 去除字符串中的控制字符
  • 芯片安全标准驱动库,筑牢芯片功能安全基石
  • windows实现键盘记录
  • Linux 安装 Nginx 并配置为开机自启动
  • 在K8S中,有一种情况,公司希望通过保持最低成本来提高效率和技术运营速度,该公司实该如何现这一目标?
  • 基于MATLAB的单目深度估计神经网络实现指南
  • DLL Injection for Notepad
  • 在K8S中,有一家公司想要修改其部署方法,并希望构建一个可扩展性和响应性更高的平台,该公司要如何实现这一目标以满足他们的客户?
  • 记一次 .NET 某汽车控制焊接软件 卡死分析
  • 在K8S中,我们都知道从单服务到微服务的转变从开发方面解决了问题,但在部署方面却增加了问题,公司该如何解决部署方面的问题?
  • 扣子 Coze 产品体验功能