NetInfo::NetInfo() { int status; sigar_t *sigar; sigar_net_info_t ni; sigar_net_interface_config_t ifc; char addrbuf[SIGAR_INET6_ADDRSTRLEN]; sigar_open(&sigar); status = sigar_net_info_get(sigar, &ni); if (status != SIGAR_OK) { printf("get net info error: %d (%s)\n", status, sigar_strerror(sigar, status)); exit(1); } hostname = ni.host_name; default_gateway = ni.default_gateway; domain_name = ni.domain_name; primary_dns = ni.primary_dns; secondary_dns = ni.secondary_dns; status = sigar_net_interface_config_primary_get(sigar, &ifc); if (status != SIGAR_OK) { printf("get net info error: %d (%s)\n", status, sigar_strerror(sigar, status)); exit(1); } if (sigar_net_interface_config_primary_get(sigar, &ifc) == SIGAR_OK) { primary_interface = ifc.name; sigar_net_address_to_string(sigar, &ifc.address, addrbuf); primary_addr = addrbuf; } if (primary_addr.isEmpty() ) primary_addr = "127.0.0.1"; qDebug () << ifc.name << " " << ifc.type << " " << primary_addr; sigar_close(sigar); }
static VALUE rb_sigar_net_address_to_string(sigar_net_address_t *address) { char addr_str[SIGAR_INET6_ADDRSTRLEN]; sigar_net_address_to_string(NULL, address, addr_str); return rb_str_new2(addr_str); }
static char *php_sigar_net_address_to_string(sigar_net_address_t address) { char addr_str[SIGAR_INET6_ADDRSTRLEN]; sigar_net_address_to_string(NULL, &address, addr_str); return estrdup(addr_str); }
static jstring jnet_address_to_string(JNIEnv *env, sigar_t *sigar, sigar_net_address_t *val) { char addr_str[SIGAR_INET6_ADDRSTRLEN]; sigar_net_address_to_string(sigar, val, addr_str); return JENV->NewStringUTF(env, addr_str); }