c - 将 ip 的十六进制值转换为标准格式

标签 c linux posix

linux 中是否有任何函数以 125.22.47.125 格式显示值 7d162f7d,即将十六进制 ip 地址转换为其标准 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

关于c - 将 ip 的十六进制值转换为标准格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3545390/

相关文章:

regex - 是否有支持 PCRE 的 subRegex 版本?

c - 退出时释放 LLVM 分配的所有内存

c - 在 C 中,如何访问指针数组(作为参数传递)

c - 使用来自多个进程的 fseek/fwrite 写入文件的不同区域?

linux - CentOS 7 yum 基本认证

linux - 从 12 小时制转换为 24 小时制排序 awk

c - 为什么在处理 ucontext 时打印到 stderr 会导致段错误?

c - printf 字符数组段错误 C

c - 元素随机分布的稀疏矩阵的数据结构

python - 无法正确安装rpy2 : undefined symbol omp_get_num_procs