![image](https://user-images.githubusercontent.com/45587738/182279814-651a1636-8f30-47f3-bead-273cf65794cd.png)

{
        ares_destroy(channel);
        ares_library_cleanup();
    }
    std::vector<std::string> CaresPTRResolver::resolve(const std::string & ip)
    {
        std::vector<std::string> ptr_records;
        resolve(ip, ptr_records);
        wait();
        return ptr_records;
    }
    std::vector<std::string> CaresPTRResolver::resolve_v6(const std::string & ip)
    {
        std::vector<std::string> ptr_records;
        resolve_v6(ip, ptr_records);
        wait();
        return ptr_records;
    }
    void CaresPTRResolver::resolve(const std::string & ip, std::vector<std::string> & response)
    {
        in_addr addr;
        inet_pton(AF_INET, ip.c_str(), &addr);
        ares_gethostbyaddr(channel, reinterpret_cast<const void*>(&addr), sizeof(addr), AF_INET, callback, &response);
    }
    void CaresPTRResolver::resolve_v6(const std::string & ip, std::vector<std::string> & response)