gpt4 book ai didi

c++ - 在转换 IP 时修复 inet_ntoa 中的 Endianess 错误显示反向值

转载 作者:行者123 更新时间:2023-11-30 03:22:26 26 4
gpt4 key购买 nike

以下是将 IP 从 uint32_t 转换为字符串中的 IP 的代码,但由于 Endianess,它给出了字符串的反转我该如何克服这个问题。

程序

#include <iostream>
#include <sys/socket.h>
#include <arpa/inet.h>

using namespace std;

int main()
{
uint32_t ip_in_decimal = 172694014;
struct in_addr addr1;
addr1.s_addr = ip_in_decimal;
std::string bpu_ip_ran = inet_ntoa(addr1);
std::cout<<bpu_ip_ran<<std::endl;

return 0;
}

输出

./a.out
1.1.168.192 // Reverse of the IP value 192.168.1.1

最佳答案

htonl是你的 friend :

addr1.s_addr = htonl(ip_in_decimal);

关于c++ - 在转换 IP 时修复 inet_ntoa 中的 Endianess 错误显示反向值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51139750/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com