std::string ipv4address("192.168.255.18");
struct in_addr ipSourceAddress;
inet_pton(AF_INET, ipv4address.c_str(), (void *)&ipSourceAddress);
std::cout << "ipSourceAddress.s_addr: " << ipSourceAddress.s_addr;

我懂了
ipSourceAddress.s_addr: 318744768

但是,任何online converter都会给我3232300818,这是我的IP制作者可以使用的值。

为什么我得到不同的值(value)观?

最佳答案

inet_pton(通常是struct in_addr)以网络字节顺序(即大字节序)存储结果。用十六进制打印两个值,您将立即看到。要将其恢复为有意义的整数,请通过ntohl运行它。

关于c++ - inet_pton是做什么的?我不应该获取我的IP地址,而是十进制吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59385269/

10-09 18:00