예제 #1
0
파일: core.cpp 프로젝트: fredix/geekast
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);
}
예제 #2
0
파일: rbsigar.c 프로젝트: mdkent/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);
}
예제 #3
0
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);
}