send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Comprobador de SO

  • 6 Respuestas
  • 2733 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« en: Abril 02, 2013, 09:58:12 pm »
Haciendo un proyecto tuve la necesidad de conocer primeramente el sistema operativo en el cual mi codigo estaba corriendo.
Les dejo un pequeño codigo que cumple con esa necesidad.

Código: Java
  1. public class comprobador {
  2.  
  3.         public static boolean esWindows() {
  4.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login so = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.getProperty("os.name").toLowerCase();
  5.                 return (so.indexOf("win") >= 0);
  6.         }
  7.         public static boolean esMac() {
  8.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login so = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.getProperty("os.name").toLowerCase();
  9.                 return (so.indexOf("mac") >= 0);
  10.         }
  11.         public static boolean esLinux() {
  12.                 You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login so = You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.getProperty("os.name").toLowerCase();
  13.                 return (so.indexOf("nix") >= 0 || so.indexOf("nux") >= 0);
  14.         }
  15.  
  16.         public static void main(You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login[] args) {
  17.                 if (esWindows()) {
  18.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println("Sistema Operativo: Windows");
  19.                 }
  20.                 if (esMac()) {
  21.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println("Sistema Operativo: Mac");
  22.                 }
  23.                 if (esLinux()) {
  24.                         You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login.out.println("Sistema Operativo: Linux");
  25.                 }
  26.         }
  27. }

En funcionamiento:



Saludos

Desconectado Ju4n C4rl0s

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #1 en: Mayo 31, 2013, 10:44:40 pm »
Muy bueno pero bien podrias haberte ahorrado muchas lineas de codigo poniendo solo

System.out.println("Sistema Operativo: " + System.getProperty("os.name"));

ya que System.getProperty("os.name") regresa un String

Bueno ese es mi punto de vista pero se te agradece tu aporte es muy interesante.

pd: Investigando me encontre con esto:

java.version Java Runtime Environment version
java.vendor Java Runtime Environment vendor
java.vendor.url Java vendor URL
java.home Java installation directory
java.vm.specification.version Java Virtual Machine specification version
java.vm.specification.vendor Java Virtual Machine specification vendor
java.vm.specification.name Java Virtual Machine specification name
java.specification.version Java Runtime Environment specification version
java.specification.vendor Java Runtime Environment specification vendor
java.specification.name Java Runtime Environment specification name
java.class.version Java class format version number
java.class.path Java class path
java.library.path List of paths to search when loading libraries
java.io.tmpdir Default temp file path Util para crear ficheros temporales en /tmp o c:\tmp
java.compiler Name of JIT compiler to use
java.ext.dirs Path of extension directory or directories
os.name Operating system name Nombre del sistema operativo
os.arch Operating system architecture
os.version Operating system version
user.name User's account name Nombre del usuario.
user.home User's home directory Directorio por defecto del usuario.
user.dir User's current working directory Directorio en el que está corriendo el programa java. Util para poner path relativos.


Desconectado Expermicid

  • *
  • Underc0der
  • Mensajes: 457
  • Actividad:
    0%
  • Reputación 0
  • _-Expermicid-_
    • Ver Perfil
  • Skype: expermicid.xd
« Respuesta #2 en: Mayo 31, 2013, 11:17:06 pm »
Ju4n C4rl0s mi necesidad era saber en que SO estaba corriendo para si ejecutaba una funcion u otra. Por eso lo hice a traves de funciones que comprobaban la plataforma.

Si solo hubiese querido informar el SO hubiese puesto esa linea que tu dices.

Gracias por leer :)

Saludos

Desconectado Ju4n C4rl0s

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #3 en: Junio 01, 2013, 09:37:29 pm »
Hola si tenes razon estuve leyendo mas acerca de ese codigo y con el metodo toLowerCase() para el resultado a minuscula y con las condiciones esas  muestra en que s.o estamos no?


Desconectado ~ Yoya ~

  • *
  • Underc0der
  • Mensajes: 149
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #4 en: Junio 02, 2013, 02:41:43 am »
Exacto, la condicion es esta:

Código: Java
  1. so.indexOf("mac") >= 0

so es un objeto tipo string, que se le ha seteado el nombre del so pasado en minúscula. indexOf es un metodo del Objeto String que devuelve un entero. Que da como resultado la posición del string pasado como parámetro utilizando el string del objeto so. Si el parametro string pasado no esta contenido en el objeto so, entonce este devuelve un -1. El utiliza un mayor o igual a 0, porque la posición comienza desde 0 y si indexOf retorna un valor igual o mayor a 0 es porque se coincidió con el objeto so. Si coincidió devuelve true de lo contrario false.



Cambiando de tema, Expermicid no debiste implementar la logica que verifica cual SO es el actual, directamente desde la parte del cliente. Lo ideal es crear una clase que realice esa lógica. Ya que andas violando algunos principios y por lo tanto estas utilizando malas practicas.

Lo ideal en este caso es utilizar el patrón de diseño Factory Method.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Desconectado Ju4n C4rl0s

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #5 en: Junio 02, 2013, 03:05:52 am »
Muchisimas gracias ~ Yoya ~ ahora si lo entendi Perfectamente la parte de los condiciones no entendia lo del >=0 pero ahora si y claroo

Gracias

Desconectado D4rkC0d3r

  • *
  • Underc0der
  • Mensajes: 202
  • Actividad:
    0%
  • Reputación 0
  • \xeb\x16\x5e\x31\xd2\
    • Ver Perfil
    • Ethical Hacking, Malware Analysis, Disinfection Techniques and more...
« Respuesta #6 en: Junio 02, 2013, 07:35:38 pm »
Interesante código, gracias por compartir!  :D

D4rkC0d3r

 

¿Te gustó el post? COMPARTILO!