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

IoT*_*IoT 1 boost c++11

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

std::string ip_address = "192.168.0.1";
Run Code Online (Sandbox Code Playgroud)

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

还有什么关于将IPv6地址从std :: string转换为4*unit32,是否有任何函数将其转换为八位字节?

Nev*_*vin 5

Boost.Asio会让你到达那里,如:

boost::asio::ip::address_v4::from_string("192.168.0.1").to_ulong();
Run Code Online (Sandbox Code Playgroud)

IPv6有点复杂,因为你必须使用boost::asio::ip::address_v6::from_string(addr).to_bytes()它返回一个boost::array<unsigned char, 16>并自己转换.