Tag: ip

通过sockaddr_in gethostname等将主机转换为ip

我需要帮助将hostname转换为ip并插入sockaddr_in-> sin_addr才能分配给char。 例如我输入:localhost,它给了我127.0.0.1 我找到了代码,但我不知道为什么它给了我错误的数字 //— #include #include #include #include #include #include #include #include #include #include #include #include #include //— ///CZY WPISANO HOST struct in_addr inaddr; inaddr.s_addr = inet_addr(argv[1]); if( inaddr.s_addr == INADDR_NONE) //if sHost is name and not IP { struct hostent* phostent = gethostbyname( argv[1]); if( phostent == 0) bail(“gethostbyname()”); if( sizeof(inaddr) != phostent->h_length) […]

与getifaddrs的MAC地址

有没有办法通过getifaddrs()获取接口的MAC地址? 我已经有了这个,获取IP地址,但我有点想念MAC 。 我试图在getifaddrs()查找信息,但没有关于MAC地址的信息 struct ifaddrs *iflist, *iface; if (getifaddrs(&iflist) ifa_next) { int af = iface->ifa_addr->sa_family; const void *addr; const void *mac; switch (af) { case AF_INET: addr = &((struct sockaddr_in *)iface->ifa_addr)->sin_addr; break; //get mac address somehow? default: addr = NULL; } if (addr) { if (inet_ntop(af, addr, addrp, sizeof addrp) == NULL) { perror(“inet_ntop”); […]

从ip和子网掩码计算广播地址

我想计算广播地址: IP: 192.168.3.1 Subnet: 255.255.255.0 = 192.168.3.255 在C. 我知道的方式(在反向的IP和子网之间做出花哨的按位OR),但我的问题是我来自MacOSX Cocoa编程的绿色领域。 我查看了ipcal的来源,但无法将其集成到我的代码库中。 互联网上必须有一行简单的十行代码,我找不到它。 有人能指出我在C中如何做到的简短代码示例吗?