news 2026/3/12 16:39:10

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/3/12 14:32:04

如何快速配置SadTalker:音频驱动面部动画的终极指南

如何快速配置SadTalker&#xff1a;音频驱动面部动画的终极指南 【免费下载链接】SadTalker 项目地址: https://gitcode.com/gh_mirrors/sad/SadTalker 想要让静态图片开口说话&#xff0c;让照片中的人物随着音频节奏自然地动起来吗&#xff1f;SadTalker音频驱动面部…

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

Oracle OpenJDK 25容器化部署终极指南:快速构建Java应用容器

Oracle OpenJDK 25容器化部署终极指南&#xff1a;快速构建Java应用容器 【免费下载链接】docker-images docker-images&#xff1a;这是一个包含 Docker 镜像的仓库。它提供了一些常见的 Docker 镜像&#xff0c;包括 Oracle 数据库、MySQL 数据库等。使用方法是在 Docker 官方…

作者头像 李华
网站建设 2026/3/12 2:25:00

Wan2.2-Animate终极指南:零门槛创作专业级角色动画

Wan2.2-Animate终极指南&#xff1a;零门槛创作专业级角色动画 【免费下载链接】Wan2.2-Animate-14B 项目地址: https://ai.gitcode.com/hf_mirrors/Wan-AI/Wan2.2-Animate-14B 还在为制作角色动画而头疼吗&#xff1f;复杂的骨骼绑定、昂贵的专业软件、漫长的学习曲线…

作者头像 李华
网站建设 2026/3/8 15:28:24

终极PDF段落拼接指南:轻松解决跨页文档转换难题

终极PDF段落拼接指南&#xff1a;轻松解决跨页文档转换难题 【免费下载链接】MinerU A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具&#xff0c;将PDF转换成Markdown和JSON格式。 项目地址: https://gitcode.com/GitHub_Trending/…

作者头像 李华
网站建设 2026/3/7 10:38:21

OpCore Simplify:3分钟完成智能配置的一键黑苹果神器

OpCore Simplify&#xff1a;3分钟完成智能配置的一键黑苹果神器 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的OpenCore配置头疼吗&…

作者头像 李华
网站建设 2026/3/11 23:37:14

年会抽奖不再尴尬:这款3D球体抽奖系统让全场沸腾

年会抽奖不再尴尬&#xff1a;这款3D球体抽奖系统让全场沸腾 【免费下载链接】log-lottery &#x1f388;&#x1f388;&#x1f388;&#x1f388;年会抽奖程序&#xff0c;threejsvue3 3D球体动态抽奖应用。 项目地址: https://gitcode.com/gh_mirrors/lo/log-lottery …

作者头像 李华