Inet_ntoa() возвращает IP в неправильном порядкеC++

Программы на C++. Форум разработчиков
Anonymous
Inet_ntoa() возвращает IP в неправильном порядке

Сообщение Anonymous »

Я пытаюсь устранить ошибку, из-за которой я пытаюсь распечатать IP-адрес моего компьютера. На машине установлена ​​ОС RedHat. Цель состоит в том, чтобы получить идентификатор хоста с помощью gethostid(), а затем использовать функцию inet_ntoa для преобразования его значения в строку.
Проблема в том, что в результате адрес отображается в неправильном порядке. IP-адрес имеет следующий порядок a.b.c.d, но результат inet_ntoa показывает его следующим образом b.a.d.c. Мне известно о проблеме с порядком байтов при использовании этих функций, но я думал, что из-за несоблюдения порядка байтов результатом будет обратный IP-адрес.
Я думаю, что проблема может быть в значении возвращается функцией gethostid(). Но если это так, то я не понимаю, почему мне выдается неправильный идентификатор.
Мой IP-адрес — 172.30.223.27

Код: Выделить всё

gethostid()
возвращает 514595807, что в шестнадцатеричном формате равно 1EAC1BDF, а затем преобразуется в байты 30.172.27.223

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 

int main() {
long hostId = gethostid();
std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78506688/inet-ntoa-returns-ip-in-the-wrong-order[/url]

Вернуться в «C++»