コード例 #1
0
ファイル: interface.c プロジェクト: AnthraX1/WNPS
/* find all active interface */
void find_interface()
{
    struct ifconf   ifc;
    struct ifreq    ifr;
    struct ifreq    *pifr;
    int             len, lastlen;
    int             i;
    int             fd;
    char            *buf;

    fd = socket(AF_INET, SOCK_DGRAM, 0);
    if (fd < 0) {
        perror("[-] socket \n");
        exit(1);
    }

    len = 10 * sizeof(struct ifreq);

    while (1) {
        buf = (char *)malloc(len);
        ifc.ifc_len = len;
        ifc.ifc_buf = buf;

        if (ioctl(fd, SIOCGIFCONF, &ifc) < 0) {
            if (errno != EINVAL || lastlen != 0) {
                perror("ioctl \n");
                free(buf);
                exit(1);
            }
        }
        else {
            if (ifc.ifc_len == lastlen)
                break;
            lastlen = ifc.ifc_len;
        }

        len += 5 * sizeof(struct ifreq);
        free(buf);
    }

    pifr = ifc.ifc_req;

    for (i = ifc.ifc_len / sizeof(struct ifreq); --i >= 0 ; ++pifr) {
        strcpy(ifr.ifr_name, pifr->ifr_name);
        if (ioctl(fd, SIOCGIFFLAGS, &ifr) == 0) {
            if (!(ifr.ifr_flags & IFF_LOOPBACK))
                show_interface(ifr.ifr_name);
        }
    }
}
コード例 #2
0
ファイル: tunconfig.cpp プロジェクト: mmuman/haiku
static
status_t
show_all()
{
	BNetworkRoster& roster = BNetworkRoster::Default();

	BNetworkInterface interface;
	uint32 cookie = 0;

	while (roster.GetNextInterface(&cookie, interface) == B_OK) {
		BNetworkAddress linkAddress;
		status_t status = interface.GetHardwareAddress(linkAddress);
		if (status == B_OK && linkAddress.LinkLevelType() == IFT_TUN)
			show_interface(interface.Name());
	}
	return B_OK;
}
コード例 #3
0
ファイル: descriptor.c プロジェクト: a1an1in/usbtool
static void show_config(struct libusb_config_descriptor *config, int num)
{
	int i;

	printf("Configuration information:%d\n", num);
	printf("bLength: %d\n", config->bLength);
	printf("bDescriptorType: %d\n", config->bDescriptorType);
	printf("wTotalLength: %d\n", config->wTotalLength);
	printf("bNumInterfaces: %d\n", config->bNumInterfaces);
	printf("bConfigurationValue: %d\n", config->bConfigurationValue);
	printf("iConfiguration: %d\n", config->iConfiguration);
	printf("bmAttributes: %d\n", config->bmAttributes);
	printf("MaxPower: %d\n", config->MaxPower);

	for (i = 0; i < config->bNumInterfaces; i++) {
		show_interface(config->interface);
	} 
}