Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Debci en 5 Agosto 2010, 23:41 pm



Título: [SOURCE]Capturando informacion del sistema y compactandola [Solucionado]
Publicado por: Debci en 5 Agosto 2010, 23:41 pm
Buenas a todos, hoy me puse a codear un pequeño codigo para capturar informacion de un sistema y compactarla para transferirla facilmente, el codigo es el siguiente:


Código
  1. [package main;
  2. import java.util.Stack;
  3. import java.util.Vector;
  4. import jpcap.JpcapCaptor;
  5. import jpcap.NetworkInterface;
  6. import interacion.WebCam;
  7. public class RecopilacionDatos {
  8. public static Vector devices;
  9. public static NetworkInterface[] netInterfaces;
  10. private static String info[];
  11. public static Vector<String> dataSistema = new Stack();
  12. public static Vector getInformacionSistema()
  13. {
  14. dataSistema.add(System.getenv("COMPUTERNAME"));
  15. dataSistema.add(System.getProperty("user.name"));
  16. dataSistema.add(System.getenv("PROCESSOR_IDENTIFIER"));
  17. dataSistema.add(System.getProperty("os.name"));
  18. dataSistema.add(System.getProperty("user.dir"));
  19. dataSistema.add("1");
  20.    devices = WebCam.getDispositivos();
  21.    if(devices.size() == 0)
  22.    {
  23.     dataSistema.add("false");
  24.    }else{
  25.  
  26.    for(int i=0;i<devices.size();i++)
  27.    {
  28.     dataSistema.add("  |- "+devices.elementAt(i));
  29.    }
  30.  
  31.    }
  32.    dataSistema.add("2");
  33.  
  34.    netInterfaces = JpcapCaptor.getDeviceList();
  35.    if(netInterfaces.length == 0)
  36.    {
  37.     dataSistema.add("false");
  38.    }else{
  39.  
  40.    for (int i = 0; i < netInterfaces.length; i++)
  41.    {
  42.  
  43.     if(i == (netInterfaces.length -1))
  44.     {
  45.     dataSistema.add("  |_ "+netInterfaces[i].name + "\n");
  46.     }else{
  47.     dataSistema.add("  |- "+netInterfaces[i].name);
  48.     }
  49.  
  50.    }
  51.    }
  52. return dataSistema;
  53. }
  54. }/code]
  55.  
  56.  
  57. Y me bota una nullpointerexception cuando añado la primera cadena al vector:
  58. [code=java]dataSistema.add(System.getenv("COMPUTERNAME"));

Lo que hago luego con el vector que me devuelve esta funcion es recorrerlo y mostrarlo ordenador por pantalla (de entrada ya puedo enviarlo por un stream de algun socket por ejemplo :D)

Espero que puedan ver lo que ocurre, es tarde y ya no atino.

Gracias :D

SOLUCIONADO: MI cabezota se olvidó de inicializar el objeto xDDD

Saludos[/code]


Título: Re: Capturando informacion del sistema y compactandola [NullPointerException]
Publicado por: egyware en 6 Agosto 2010, 00:14 am
Hola
Código
  1. System.getenv("COMPUTERNAME")
existe esa variable del sistema?
bueno lo que prodrias colocar para evitar tu problema
Código
  1. String compu = System.getenv("COMPUTERNAME");
  2. dataSistema.add(((compu==null)?"(null)":compu));
Y me di cuenta de esto cuando te escribia lo anterior

Código
  1. private static Vector dataSistema;
En que momento inicializas la variable?

Si no tienes un constructor podrias hacer.
Código
  1. private static Vector dataSistema = new Vector();

Saludos


EDIT:
Personalmente no me gusta la forma que envias los datos, podrias estructurar más la forma de enviar los datos. Saludos


Título: Re: Capturando informacion del sistema y compactandola [NullPointerException]
Publicado por: Debci en 6 Agosto 2010, 00:18 am
Hola
Código
  1. System.getenv("COMPUTERNAME")
existe esa variable del sistema?
bueno lo que prodrias colocar para evitar tu problema
Código
  1. String compu = System.getenv("COMPUTERNAME");
  2. dataSistema.add(((compu==null)?"(null)":compu));
Y me di cuenta de esto cuando te escribia lo anterior

Código
  1. private static Vector dataSistema;
En que momento inicializas la variable?

Si no tienes un constructor podrias hacer.
Código
  1. private static Vector dataSistema = new Vector();

Saludos


EDIT:
Personalmente no me gusta la forma que envias los datos, podrias estructurar más la forma de enviar los datos. Saludos
LO se pero es explicitamente necesario que sea asi xD
Que cabeza no inicializar el objeto xDDD

Saludos y gracias :D