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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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