将IP地址从std :: string转换为boost :: uint32

时间:2014-05-01 21:24:47

标签: c++11 boost

Boost库中是否有任何函数,我可以在其中转换并以字符串形式给出IPv4地址:

std::string ip_address = "192.168.0.1";

进入以下“11000000101010000000000000000001”的二进制格式并将其存储在boost :: unit32单元中,或者我应该自己构建该函数?

另外如何将IPv6地址从std :: string转换为4 * unit32,是否有任何函数可以将其转换为八位字节?

1 个答案:

答案 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>并自行转换。