obtener nombre de dominio local o de la red

buenas, quisiera orientacion de como poder obtener el nombre del dominio al cual esta conectada una maquina, estoy realizando una aplicacion de monitoreo para fines de auditoria interna y hasta ahora solo he logrado obtener la ip, nombre de la maquina, usuario del OS, fecha y la hora.

ejemplo:

User OS:XXXXX
WorkStation:XXXXX
IP:XXXXX
Domain:?

este es mi codigo:

public class CsytecSocketInf {
private InetAddress address;
private Calendar calendario;
private String userIp;
private String userMachine;
private String userDomain;
private String userSystem;
private String fecha;
private String timer;

public String getUserIp() {
try {

address = InetAddress.getLocalHost();

byte[] bIPAddress = address.getAddress();
String sIPAddress = "";

for (int x=0; x 0) {
sIPAddress += ".";
}

sIPAddress += bIPAddress[x] & 255;
userIp=sIPAddress;
}

} catch (UnknownHostException e) {
System.out.println( e.toString() );
}
return userIp;
}

public String getUserMachine() {
try {

address = InetAddress.getLocalHost();
userMachine=address.getHostName();

} catch (UnknownHostException e) {
System.out.println( e.toString() );
}
return userMachine;
}

public String getUserSystem() {
userSystem=System.getProperty("user.name");
return userSystem;
}
public String getfecha(){
calendario = Calendar.getInstance();
String año = Integer.toString(calendario.get(Calendar.YEAR));
String mes = Integer.toString(calendario.get(Calendar.MONTH) + 1);
String dia = Integer.toString(calendario.get(Calendar.DATE));

fecha=dia+"-"+mes+"-"+año;
return fecha;
}
public String gettimer(){
calendario = Calendar.getInstance();
String hora = Integer.toString(calendario.get(Calendar.HOUR_OF_DAY));
String minuto = Integer.toString(calendario.get(Calendar.MINUTE));
String segundo = Integer.toString(calendario.get(Calendar.SECOND));

timer=hora+":"+minuto+":"+segundo;
return timer;
}
public String getuserDomain(){

return userDomain;
}
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

A tu metodo

A tu metodo

getUserDomain()

creo le faltaria esto

public String getUserName(String url){

URL u;
         try {
             u = new URL(url);
         }
         catch (Exception e) {
             return "";
         }
         return u.getHost();

}

rsp: A tu metodo

hola hugo.garcia , en verdad gracias por tu comentario pero si podrias explicarme que hace la estructura de codigo que me dejastes, es que intente correrlo pero no me genera nada... quizas porq estoy asignando un string vacio a la variable u de tipo URL, pero en si que representa url? de donde la obtengo? tengo que asignarsela manualmente?

mi aplicacion requiere que al momento de ejecutarse, la misma pueda capturar por medio de un metodo getDomain el nombre del dominio de red o grupo de trabajo al cual esta registrada la pc.

si es workgroup o si es un dominio de red.

Gracias amigo garcia.

Bueno

Primero que nada URL (con mayusculas es una clase) url(minusculas) es un atributo de tipo String entonces yo vi en tu código que tienes un metodo que se llama getUserDomain() entonces yo me equivoque al llamar al metodo que te sugeri getUserName(String url)

Bueno llamale como tu quieras

url deber ser una cadena de texto y puede contener la direccion ip de la PC o un nombre tipo www.javamexico.org solo para terminar
yo cambiaria

catch (Exception e) {
             return "";
         }

por

catch (Exception e) {
             return e.getMessage();
         }

Podrias leer la API de java y ver la definicion de la clase URL y asi tener más claro que es lo que hace el segmento de código que te propongo

Saludos