一、前言
在使用lwip协议栈的过程中,我们难免会遇到一个问题。那就是,IPV4的地址在不同时候需要很多种不同的表达形式。
例如,在平常的使用中,我们要采用8个十六进制数来表示。而打印的时候,如果也是这种数据的话,直接打印恐怕没有人看的懂,但是采用移位的方式又比较麻烦。所以在LWIp中,预留了这种函数来让我们直接使用。
二、地址讲解
例如:192.168.1.1这个数据在计算机中其实是这样的数据:用8位来表示一个点中的数据,也就是:0xc0A80101这样的一个三十二位数据。
我们都知道,一个ipv4的地址是一个32位的数据。在协议中,我们常常用下面的结构体表示:
/** @brief 定义一个32的地址结构体
*/
struct in_addr {
in_addr_t s_addr;
};
所以看到这样的结构体,我们知道是一个32位的地址数据就行了。
三、数据转化函数:inet_ntoa
这是百度百科的定义: