news 2026/5/7 12:02:32

Socket 编程进阶:`inet_ntop` 函数与 `sockaddr` 结构体详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Socket 编程进阶:`inet_ntop` 函数与 `sockaddr` 结构体详解

Socket 编程进阶:inet_ntop函数与sockaddr结构体详解

一、inet_ntop:让 IP 地址“现原形”

当网络包到达你的程序时,IP 地址是网络字节序(大端)的二进制数据。为了让人能看懂,我们需要把它还原成点分十进制字符串(如"192.168.1.1")。

这就要用到inet_ntop函数。

  • n: Network (网络/数值)
  • to: 转换
  • p: Presentation (显示/文本)

1. 函数原型

#include<arpa/inet.h>constchar*inet_ntop(intaf,constvoid*src,char*dst,socklen_tsize);

2. 参数解析(敲黑板!)

  1. af:协议族。AF_INET(IPv4) 或AF_INET6(IPv6)。
  2. src传入参数。指向存放了大端 IP 的内存地址(通常是struct sockaddr_in里的sin_addr)。
  3. dst传出参数。你需要先准备好一个字符数组,函数会把转换好的字符串填进去。
  4. size缓冲区大小。告诉函数dst有多大,防止写越界。
    • IPv4 建议至少定义 16 字节 (INET_ADDRSTRLEN)。
    • IPv6 建议至少定义 46 字节 (INET6_ADDRSTRLEN)。

3. 返回值

  • 成功:返回指向dst的非空指针(也就是转换后的字符串地址)。
  • 失败:返回NULL(此时需检查errno)。

二、 代码实战:将二进制 IP 还原为字符串

假设我们从网络中直接捕获了 4 个字节C0 A8 01 02,我们看看如何把它变回字符串。

代码 (ntop_demo.c)
#include<stdio.h>#include<arpa/inet
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/3 14:17:39

从数字设计到精美刺绣:Ink/Stitch插件的完整创作指南

从数字设计到精美刺绣&#xff1a;Ink/Stitch插件的完整创作指南 【免费下载链接】inkstitch Ink/Stitch: an Inkscape extension for machine embroidery design 项目地址: https://gitcode.com/gh_mirrors/in/inkstitch 您是否曾经想过将精美的矢量设计直接转化为机器…

作者头像 李华
网站建设 2026/5/2 23:10:02

vn.py量化交易框架:从零构建专业交易系统的终极指南

vn.py量化交易框架&#xff1a;从零构建专业交易系统的终极指南 【免费下载链接】vnpy 基于Python的开源量化交易平台开发框架 项目地址: https://gitcode.com/vnpy/vnpy 在当今数字化金融时代&#xff0c;Python量化交易框架vn.py为开发者提供了从数据获取到策略执行的…

作者头像 李华
网站建设 2026/5/1 3:32:14

Wan2.2-Animate:让动画创作像发朋友圈一样简单

Wan2.2-Animate&#xff1a;让动画创作像发朋友圈一样简单 【免费下载链接】Wan2.2-Animate-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-14B 还记得小时候看动画片时&#xff0c;总觉得那些会动的角色特别神奇吗&#xff1f;现在&#xf…

作者头像 李华
网站建设 2026/5/3 4:55:48

如何快速掌握o-lib:免费PC端开源图书管理工具的完整使用指南

如何快速掌握o-lib&#xff1a;免费PC端开源图书管理工具的完整使用指南 【免费下载链接】o-lib O-LIB is a free and open source software for PC. 项目地址: https://gitcode.com/gh_mirrors/ol/o-lib 想要高效管理个人图书收藏&#xff1f;o-lib这款免费PC端开源图书…

作者头像 李华
网站建设 2026/5/3 12:20:47

OpCore Simplify智能EFI配置:从硬件识别到完美安装指南

OpCore Simplify智能EFI配置&#xff1a;从硬件识别到完美安装指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore Simplify作为专业的OpenCor…

作者头像 李华
网站建设 2026/5/5 4:50:02

虚拟显示器:如何让单屏电脑拥有多任务超能力

虚拟显示器&#xff1a;如何让单屏电脑拥有多任务超能力 【免费下载链接】Virtual-Display-Driver Add virtual monitors to your windows 10/11 device! Works with VR, OBS, Sunshine, and/or any desktop sharing software. 项目地址: https://gitcode.com/gh_mirrors/vi/…

作者头像 李华