ZBLOG

linux C通过打印sockaddr对应的ipv4地址

要打印 sockaddr 结构体中的 IPv4 地址,可以使用 inet_ntoa() 函数将 sockaddr 结构体中的 IP 地址转换为字符串形式。

以下是一个示例代码:

#include <stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main() {
    struct sockaddr_in sa;
    
    // 假设已经对sa进行了初始化
    
    char ip[INET_ADDRSTRLEN];
    inet_ntop(AF_INET, &(sa.sin_addr), ip, INET_ADDRSTRLEN);
    
    printf("IPv4地址: %s\n", ip);

    return 0;
}

在上述代码中,我们创建了一个 struct sockaddr_in 类型的变量 sa。然后,使用 inet_ntop() 函数将其转换为字符串形式的 IPv4 地址,并将结果存储在字符数组 ip 中。最后,使用 printf() 打印该字符串形式的 IPv4 地址。

请注意,在使用此代码之前,需要确保已经正确初始化了 sa 结构体中的 IP 地址信息。

运行以上代码后,你将会看到类似如下输出结果:

IPv4地址: 127.0.0.1

这表示该 sockaddr 变量对应的 IPv4 地址是 “127.0.0.1”。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=3236

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?