есть ли функция в Linux для отображения 7d162f7d значения в формате 125.22.47.125 т.е. преобразовать шестнадцатеричный-адрес IP в стандартном формате внутрибрюшинношестнадцатеричного значения ф в стандартный формат
ответ
Вы могли бы использовать что-то вроде:
#include <stdio.h>
static char *ipToStr (unsigned int ip, char *buffer) {
sprintf (buffer, "%d.%d.%d.%d", ip >> 24, (ip >> 16) & 0xff,
(ip >> 8) & 0xff, ip & 0xff);
return buffer;
}
int main (void) {
char buff[16];
printf ("%s\n", ipToStr (0x7d162f7dU, buff));
return 0;
}
, который производит:
125.22.47.125
правильная функция, чтобы использовать для этой цели
inet_ntop - преобразование IPv4 и IPv6 адреса из двоичного кода в текстовом виде
В вашем случае, как вы, кажется, отсылая к IPv4 адрес, который вы должны создать struct in_addr
что-то вроде этого
struct in_addr addr = { .s_addr = YOURVALUE };
, а затем вы должны назвать его так
char addrstr[16] = { 0 };
inet_ntop(AF_INET, &addr, addrstr, sizeof(struct in_addr));
+1 для использования стандартных функций. Но вы можете использовать 'INET_ADDRSTRLEN' вместо '16' для вашего массива символов и использовать простой' in_addr_t addr = YOURVALUE' вместо целой структуры. – schot
@schot: Я не уверен в 'in_addr_t addr = YOURVALUE'. 'in_addr_t' по сути является всего лишь целым типом, нет? При вызове с 'AF_INET' в качестве аргумента' inet_ntop' ожидает 'struct in_addr', который, по крайней мере теоретически, может иметь другие поля, кроме' s_addr', и где он не должен быть даже первым членом. –
Я немного не уверен. Но второй аргумент 'inet_ntop()' - 'const void * ограничивает src'. POSIX говорит: «Аргумент src указывает на буфер, содержащий адрес IPv4, если аргумент af является AF_INET, [...]», но не указывает разрешенные форматы для этого буфера. – schot
- 1. Значения шестнадцатеричного значения MySQLIMPORT
- 2. Преобразовать список длинных ф к пунктирной ф
- 3. Установить стандартный формат даты
- 4. Стандартный формат diff в SVN
- 5. Переполнение переполнения шестнадцатеричного значения
- 6. Вставка шестнадцатеричного значения mysql
- 7. Префикс шестнадцатеричного значения 0x
- 8. Преобразование строки шестнадцатеричного значения в двоичную строку
- 9. Преобразование шестнадцатеричного значения в C#
- 10. Преобразование шестнадцатеричного значения в ascii
- 11. Вставка шестнадцатеричного значения в mysql
- 12. Слово шестнадцатеричного значения в Python
- 13. Добавление шестнадцатеричного значения в строку
- 14. Хранение длинного шестнадцатеричного значения
- 15. Значения шестнадцатеричного значения в заголовках протокола
- 16. Стандартный формат для событий Javabean
- 17. Стандартный Java-проект Описание Формат
- 18. Каков стандартный формат выражений присваивания?
- 19. Как использовать стандартный формат UUID
- 20. Стандартный формат для цифровой подписи
- 21. Идентификация шестнадцатеричного значения нажатий клавиш
- 22. не ObjectId хранения шестнадцатеричного значения
- 23. Объединить бит из шестнадцатеричного значения
- 24. Отправка шестнадцатеричного значения для ZRANGEBYLEX
- 25. Разбиение шестнадцатеричного значения на 2 шестнадцатеричных значения
- 26. Значение шестнадцатеричного значения для пользовательского десятичного значения
- 27. Android - Java - Передающие/принимающие значения шестнадцатеричного значения
- 28. получить соответствующие значения из шестнадцатеричного
- 29. Преобразование шестнадцатеричного значения в float в C
- 30. Преобразовать код локали в стандартный формат jQuery
, если у вас есть структура in_addr, вы также можете использовать предложение Йенса Густедта ниже. – KedarX