#define _10_IN_ADDR_ARPA    "10.in-addr.arpa"
#define _168_IN_ADDR_ARPA   "168.192.in-addr.arpa"
#define _10_LEN             15
#define _168_LEN            20

    uint8_t octs[4];
    char conv_host[15];
    bzero(conv_host, sizeof(conv_host));
    if(!memcmp(zone + strlen(zone) - _10_LEN, _10_IN_ADDR_ARPA, _10_LEN))
    {
        if(sscanf(zone, "%hhu.%hhu.%hhu.%hhu.", &octs[0], &octs[1], &octs[2], &octs[3]) == 4)
        {
            sprintf(conv_host, "%hhu.%hhu.%hhu", octs[0], octs[1], octs[2]);
            record = conv_host;
            zone = _10_IN_ADDR_ARPA;
        }
    }
    else if(!memcmp(zone + strlen(zone) - _168_LEN, _168_IN_ADDR_ARPA, _168_LEN))
    {
        if(sscanf(zone, "%hhu.%hhu.%hhu.%hhu.", &octs[0], &octs[1], &octs[2], &octs[3]) == 4)
        {
            sprintf(conv_host, "%hhu.%hhu", octs[0], octs[1]);
            record = conv_host;
            zone = _168_IN_ADDR_ARPA;
        }
    }