netaddr_convert.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(int argc, char* argv[])
{
//检查命令行参数是否匹配
if (argc != 2)
{
printf("请输入需要转换的IP地址!\n");
return -1;
}
uint32_t net_ip = inet_addr(argv[1]);
printf("input ip:%s,ip<网络字节序>:%u,0x%08X\n", argv[1], net_ip, net_ip);
uint32_t host_ip = ntohl(net_ip);
printf("input ip:%s,ip<主机字节序>:%u,0x%08X\n", argv[1], host_ip, host_ip);
return 0;
}
编译:gcc netaddr_convert.c -o netaddr_convert
测试:./netaddr_convert 192.168.1.173
对比wireshark的IP地址显示