620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews/*
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2009, 2015, 2016 Internet Systems Consortium, Inc. ("ISC")
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews *
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews */
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews
af30180834ac4b3b206338be5c42e89bab07ca27Mark Andrews/* $Id: arpaname.c,v 1.4 2009/10/27 03:05:33 marka Exp $ */
ffcd068f879349503183329a5c4527d7f6cc5989Mark Andrews
ffcd068f879349503183329a5c4527d7f6cc5989Mark Andrews#include "config.h"
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews
af30180834ac4b3b206338be5c42e89bab07ca27Mark Andrews#include <isc/net.h>
3759f10fc543747668b1ca4b4671f35b0dea8445Francis Dupont#include <isc/print.h>
af30180834ac4b3b206338be5c42e89bab07ca27Mark Andrews
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews#include <stdio.h>
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews
31a641171249300e29a02a6a01aa32c2af875cadEvan Hunt#define UNUSED(x) (void)(x)
31a641171249300e29a02a6a01aa32c2af875cadEvan Hunt
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrewsint
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrewsmain(int argc, char *argv[]) {
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews unsigned char buf[16];
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews int i;
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews
31a641171249300e29a02a6a01aa32c2af875cadEvan Hunt UNUSED(argc);
31a641171249300e29a02a6a01aa32c2af875cadEvan Hunt
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews while (argv[1]) {
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews if (inet_pton(AF_INET6, argv[1], buf) == 1) {
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews for (i = 15; i >= 0; i--)
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews fprintf(stdout, "%X.%X.", buf[i] & 0xf,
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews (buf[i] >> 4) & 0xf);
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews fprintf(stdout, "IP6.ARPA\n");
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews argv++;
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews continue;
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews }
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews if (inet_pton(AF_INET, argv[1], buf) == 1) {
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews fprintf(stdout, "%u.%u.%u.%u.IN-ADDR.ARPA\n",
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews buf[3], buf[2], buf[1], buf[0]);
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews argv++;
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews continue;
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews }
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews return (1);
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews }
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews fflush(stdout);
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews return(ferror(stdout));
620508359f9bb21cd5df7fdf2e6f4677903fb539Mark Andrews}