您可以使用位掩码和位移位,例如:
unsigned int val = 0x0a010203;
printf("%d.%d.%d.%d",
(val & 0xFF000000) >> 24,
(val & 0x00FF0000) >> 16,
(val & 0x0000FF00) >> 8,
val & 0x000000FF);
Run Code Online (Sandbox Code Playgroud)
填写 astruct in_addr并使用inet_ntoa()(“Internet 地址转 ASCII 字符串”):
#include <arpa/inet.h>
struct in_addr addr;
addr.s_addr = htonl(0x0a010203); // s_addr must be in network byte order
char *s = inet_ntoa(addr); // --> "10.1.2.3"
Run Code Online (Sandbox Code Playgroud)
请注意,返回的字符串inet_ntoa()可能指向可能被后续调用覆盖的静态数据。如果只是打印出来然后不再使用,那没有问题。否则就需要复制该字符串。
| 归档时间: |
|
| 查看次数: |
11786 次 |
| 最近记录: |