コード例 #1
0
int
main(int argc, char *argv[])
{
	int			 ch, i, r;
	uint16_t		 type = T_A;
	char			 buf[1024], *host;

	while((ch = getopt(argc, argv, "R:et:")) !=  -1) {
		switch(ch) {
		case 'R':
			parseresopt(optarg);
			break;
		case 'e':
			long_err += 1;
			break;
		case 't':
			if ((type = strtotype(optarg)) == 0)
				usage();
			break;
		default:
			usage();
			/* NOTREACHED */
		}
	}
	argc -= optind;
	argv += optind;

	for (i = 0; i < argc; i++) {

		if (i)
			printf("\n");

		printf("===> \"%s\"\n", argv[i]);
		host = gethostarg(argv[i]);

		errno = 0;
		h_errno = 0;
		gai_errno = 0;
		rrset_errno = 0;

		r = res_mkquery(QUERY, host, C_IN, type, NULL, 0, NULL, buf, sizeof(buf));
		if (r != -1) {
			dump_packet(buf, r);
			printf(";; MSG SIZE %i\n", r);
		}
		print_errors();
	}

	return (0);
}
コード例 #2
0
ファイル: getnetnamadr.c プロジェクト: SylvestreG/bitrig
int
main(int argc, char *argv[])
{
	int			 i, ch, nflag = 0;
	struct netent		*n;
	char			*host;

	while((ch = getopt(argc, argv, "en")) !=  -1) {
		switch(ch) {
		case 'e':
			long_err += 1;
			break;
		case 'n':
			nflag = 1;
			break;
		default:
			usage();
			/* NOTREACHED */
		}
	}
	argc -= optind;
	argv += optind;

	for(i = 0; i < argc; i++) {

		if (i)
			printf("\n");
		printf("===> \"%s\"\n", argv[i]);
		host = gethostarg(argv[i]);

		errno = 0;
		h_errno = 0;
		gai_errno = 0;
		rrset_errno = 0;

		if (nflag)
			n = getnetbyname(host);
		else
			n = getnetbyaddr(inet_network(host), AF_INET);
		if (n)
			print_netent(n);
		print_errors();
	}

	return (0);
}
コード例 #3
0
ファイル: res_query.c プロジェクト: SylvestreG/bitrig
int
main(int argc, char *argv[])
{
	struct timeval		 start, end;
	time_t			 when;
	int			 ch, i, qflag, dflag, r;
	uint16_t		 type = T_A;
	char			 buf[1024], *host;

	dflag = 0;
	qflag = 0;

	while((ch = getopt(argc, argv, "deqt:")) !=  -1) {
		switch(ch) {
		case 'd':
			dflag = 1;
			break;
		case 'e':
			long_err += 1;
			break;
		case 'q':
			qflag = 1;
			break;
		case 't':
			if ((type = strtotype(optarg)) == 0)
				usage();
			break;
		default:
			usage();
			/* NOTREACHED */
		}
	}
	argc -= optind;
	argv += optind;

	for (i = 0; i < argc; i++) {

		if (i)
			printf("\n");

		printf("===> \"%s\"\n", argv[i]);
		host = gethostarg(argv[i]);

		errno = 0;
		h_errno = 0;
		gai_errno = 0;
		rrset_errno = 0;

		if (gettimeofday(&start, NULL) != 0)
			err(1, "gettimeofday");

		if (qflag)
			r = res_query(host, C_IN, type, buf, sizeof(buf));
		else
			r = res_search(host, C_IN, type, buf, sizeof(buf));

		if (gettimeofday(&end, NULL) != 0)
			err(1, "gettimeofday");

		if (r != -1) {
			dump_packet(buf, r);
			printf("\n");
			if (dflag) {
				printf(";; Query time: %d msec\n",
				    msec(start, end));
				when = time(NULL);
				printf(";; WHEN: %s", ctime(&when));
			}
			printf(";; MSG SIZE  rcvd: %i\n", r);
		}
		print_errors();
	}

	return (0);
}
コード例 #4
0
int
main(int argc, char *argv[])
{
    struct addrinfo		*ai, *res, hints;
    char			*servname = NULL, *host;
    int			 i, ch;

    memset(&hints, 0, sizeof hints);

    while((ch = getopt(argc, argv, "CFHPSef:p:s:t:")) !=  -1) {
        switch(ch) {
        case 'C':
            hints.ai_flags |= AI_CANONNAME;
            break;
        case 'F':
            hints.ai_flags |= AI_FQDN;
            break;
        case 'H':
            hints.ai_flags |= AI_NUMERICHOST;
            break;
        case 'P':
            hints.ai_flags |= AI_PASSIVE;
            break;
        case 'S':
            hints.ai_flags |= AI_NUMERICSERV;
            break;
        case 'e':
            long_err += 1;
            break;
        case 'f':
            if (!strcmp(optarg, "inet"))
                hints.ai_family = AF_INET;
            else if (!strcmp(optarg, "inet6"))
                hints.ai_family = AF_INET6;
            else
                usage();
            break;
        case 'p':
            if (!strcmp(optarg, "udp"))
                hints.ai_protocol = IPPROTO_UDP;
            else if (!strcmp(optarg, "tcp"))
                hints.ai_protocol = IPPROTO_TCP;
            else if (!strcmp(optarg, "icmp"))
                hints.ai_protocol = IPPROTO_ICMP;
            else if (!strcmp(optarg, "icmpv6"))
                hints.ai_protocol = IPPROTO_ICMPV6;
            else
                usage();
            break;
        case 's':
            servname = optarg;
            break;
        case 't':
            if (!strcmp(optarg, "stream"))
                hints.ai_socktype = SOCK_STREAM;
            else if (!strcmp(optarg, "dgram"))
                hints.ai_socktype = SOCK_DGRAM;
            else if (!strcmp(optarg, "raw"))
                hints.ai_socktype = SOCK_RAW;
            else
                usage();
            break;
        default:
            usage();
            /* NOTREACHED */
        }
    }
    argc -= optind;
    argv += optind;

    for(i = 0; i < argc; i++) {

        if (i)
            printf("\n");
        printf("===> \"%s\"\n", argv[i]);
        host = gethostarg(argv[i]);

        errno = 0;
        h_errno = 0;
        gai_errno = 0;
        rrset_errno = 0;

        gai_errno = getaddrinfo(host, servname, &hints, &ai);

        print_errors();
        if (gai_errno == 0) {
            for (res = ai; res; res = res->ai_next)
                print_addrinfo(res);
            freeaddrinfo(ai);
        }
    }

    return (0);
}
コード例 #5
-1
ファイル: gethostnamadr.c プロジェクト: SylvestreG/bitrig
int
main(int argc, char *argv[])
{
	int			 i, ch, aflag, family = AF_INET;
	struct hostent		*h;
	char			*host;
	char			 addr[16];
	int			 addrlen;

	aflag = 0;
	while((ch = getopt(argc, argv, "46ae")) !=  -1) {
		switch(ch) {
		case '4':
			family = AF_INET;
			break;
		case '6':
			family = AF_INET6;
			break;
		case 'a':
			aflag = 1;
			break;
		case 'e':
			long_err += 1;
			break;
		default:
			usage();
			/* NOTREACHED */
		}
	}
	argc -= optind;
	argv += optind;

	for(i = 0; i < argc; i++) {

		if (i)
			printf("\n");
		printf("===> \"%s\"\n", argv[i]);
		host = gethostarg(argv[i]);

		if (aflag && addr_from_str(addr, &family, &addrlen, host) == -1)
			errx(1, "bad address");

		errno = 0;
		h_errno = 0;
		gai_errno = 0;
		rrset_errno = 0;

		if (aflag == 0)
			h = gethostbyname2(host, family);
		else
			h = gethostbyaddr(addr, addrlen, family);
		if (h)
			print_hostent(h);
		print_errors();
	}

	return (0);
}