Boost库中是否有任何函数,我可以在其中转换并以字符串形式给出IPv4地址:
std::string ip_address = "192.168.0.1";
进入以下“11000000101010000000000000000001”的二进制格式并将其存储在boost :: unit32单元中,或者我应该自己构建该函数?
另外如何将IPv6地址从std :: string转换为4 * unit32,是否有任何函数可以将其转换为八位字节?
答案 0 :(得分:5)
Boost.Asio会让你到达那里,如:
boost::asio::ip::address_v4::from_string("192.168.0.1").to_ulong();
IPv6有点复杂,因为您必须使用boost::asio::ip::address_v6::from_string(addr).to_bytes()
返回boost::array<unsigned char, 16>
并自行转换。