Example #1
0
int
main(int argc, char **argv)
{
	if (argc != 2)
		err_quit("usage: prifname <interface-name>");

	printf("interface index = %d\n", If_nametoindex(argv[1]));
	exit(0);
}
int
main(int argc, char **argv)
{
	int					n;
	char				ifname[IFNAMSIZ];
	struct if_nameindex	*ifptr, *save;

	if (argc != 1)
		err_quit("usage: prifnameindex");

		/* print all the interface names and indexes */
	for (save = ifptr = If_nameindex(); ifptr->if_index > 0; ifptr++) {
		printf("name = %s, index = %d\n", ifptr->if_name, ifptr->if_index);;

		if ( (n = If_nametoindex(ifptr->if_name)) != ifptr->if_index)
			err_quit("if_nametoindex returned %d, expected %d, for %s",
					 n, ifptr->if_index, ifptr->if_name);

		If_indextoname(ifptr->if_index, ifname);
		if (strcmp(ifname, ifptr->if_name) != 0)
			err_quit("if_indextoname returned %s, expected %s, for %d",
					 ifname, ifptr->if_name, ifptr->if_index);
	}

	n = if_nametoindex("fkjhkjhgjhgjhgdjhguyetiuyiuyhkjhkjdh");
	if (n != 0)
		err_quit("if_nametoindex returned %d for fkjh...", n);
	n = if_nametoindex("");
	if (n != 0)
		err_quit("if_nametoindex returned %d for (null)", n);

	if (if_indextoname(0, ifname) != NULL)
		err_quit("if_indextoname error for 0");
	if (if_indextoname(888888, ifname) != NULL)
		err_quit("if_indextoname error for 888888");

	if_freenameindex(save);
	exit(0);
}