Как конвертировать с boost: asio: ip: адрес IPV6 в IPV4 - PullRequest
0 голосов
/ 13 декабря 2018

Я пишу небольшую программу с boost :: asio для конвертации ipv6 в ipv4, она хорошо компилируется, но если я запускаю свою программу, я получаю:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::bad_cast> >' what(): std::bad_cast Abgebrochen (Speicherabzug geschrieben)

мой код:

#include <iostream>
#include <boost/asio/ip/address.hpp>

using namespace std;
using namespace boost::asio::ip;

int main(){
    address myIP = address::from_string("fe80::c87f:db87:787b:a7c4");
    address_v6 myIP6 = myIP.to_v6();
    address_v4 myIP4 = myIP.to_v4();
    cout << myIP4.to_string() <<endl;
    return EXIT_SUCCESS;
}

1 Ответ

0 голосов
/ 13 декабря 2018

Это по замыслу.boost::asio::ip::address - это или адрес IPv6, или адрес IPv4.Это не одновременно одновременно.

Говорить о "конвертации IPv6 в IPv4" просто не имеет смысла.Самым близким было бы создание таблицы «известных адресов для определенного хоста» и поиск в ней адреса, отличного от того, который у вас есть.

...