ipv4地址之间的转换 #include in_addr_t inet_addr(const char* strptr); int inet_aton(const char* cp, struct in_addr* inp); char* inet_ntoa(struct in_addr_in);
ip地址的表示:
字符串:点分十进制(记录日志需要转换为字符串)。
整数:存储ip地址的32bit(编程的时候需要转换为整数)。
#include#include #include using namespace std; int main() { string ip; while (cout << "输入:",cin >> ip){ in_addr_t tmp = inet_addr(ip.c_str()); //返回整数ip cout << "in_addr_t(整数):" << tmp << endl; struct in_addr inp; //结构体中只有一个无符号整形数s_addr inet_aton(ip.c_str(), &inp); cout << "in_addr(结构体/整数):" << inp.s_addr < b(tmp); //输出二进制ip cout << "ipv4二进制表示:" << b << endl; char* p = inet_ntoa(inp); cout << "inet_ntoa(字符串):" << p << endl; } return 0; }
输入:192.168.124.14 in_addr_t(整数):243050688 in_addr(结构体/整数):243050688 ipv4二进制表示:00001110011111001010100011000000 inet_ntoa(字符串):192.168.124.14 输入:192.168.22.159 in_addr_t(整数):2669062336 in_addr(结构体/整数):2669062336 ipv4二进制表示:10011111000101101010100011000000 inet_ntoa(字符串):192.168.22.159



