Red de conocimiento informático - Conocimiento informático - Ayúdame a escribir un formulario en Java que pueda obtener la IP y el nombre del host.

Ayúdame a escribir un formulario en Java que pueda obtener la IP y el nombre del host.

importar java.io.BufferedReader;

importar java.io.IOException;

importar java.io.InputStreamReader;

importar java.net.InetAddress;

importar java.net.UnknownHostException;

/**

* @className: SystemTool

* @descripción: algunas herramientas y métodos de uso común relacionados con el sistema actualmente implementados: obtención de dirección MAC, dirección IP, nombre de host

* @autor: Riendo en todo el mundo

*. @createTime : 2010-11-13 08:03:44 p.m.

*/

Clase pública SystemTool {

/**

* Obtener el nombre del sistema operativo actual.

* devolver el nombre del sistema operativo como: windows xp, linux, etc.

*/

cadena estática pública getOSName() {

return System.getProperty("os.name").toLowerCase();

}

/**

* Obtenga Unix La dirección mac de la tarjeta de red.

* Los sistemas que no son Windows llaman a este método para obtenerlo de forma predeterminada. Si tiene un sistema especial, continúe expandiendo el nuevo método de obtención. la dirección mac.

* @return dirección mac

*/

public static String getUnixMACAddress() {

String mac = null ;

BufferedReader bufferedReader = null;

Proceso proceso = null;

prueba {

proceso = Runtime.getRuntime().exec ("ifconfig eth0");// El comando en Linux generalmente toma eth0 como tarjeta de red primaria local, la información mostrada contiene información de la dirección mac

bufferedReader = new BufferedReader(new InputStreamReader(process

.getInputStream()));

Línea de cadena = null;

int index = -1;

while ((line = bufferedReader.readLine ()) != null) {

index = line .toLowerCase().indexOf("hwaddr");// Encuentra la cadena de identificación [hwaddr]

if (index > = 0) {// Lo encontré

mac = line .substring(index +"hwaddr".length()+ 1).trim();// Saca la dirección mac y elimina los espacios en ambos lados

se rompen;

}

}

}

catch (IOException e) {

e.printStackTrace();

} finalmente {

prueba {

if (bufferedReader != null) {

bufferedReader.close();

}

} catch (IOException e1) {

e1.printStackTrace() ;

}

bufferedReader = null;

proceso = null;

}

devolver mac;

}

/**

* Obtener la dirección mac de la tarjeta de red widnows.

* @return dirección mac

*/

public static String getWindowsMACAddress() {

String mac = null;

BufferedReader bufferedReader = null;

Proceso proceso = null;

try {

proceso = Runtime.getRuntime().exec("ipconfig /all"); // Comando en Windows, la información mostrada contiene el Información de dirección mac

bufferedReader = new BufferedReader(new InputStreamReader(process

.getInputStream()));

Línea de cadena = null;

int index = -1;

while ((line = bufferedReader.readLine()) != null) {

index = line.toLowerCase().indexOf("físico dirección" );// Busca la cadena de identificación [dirección física]

if (index >= 0) {// Encontrado

index = line.indexOf(":") ;/ / Encuentra la ubicación de ":"

if (index>=0) {

mac = line.substring(index + 1).trim();// Toma saque la dirección mac y elimine 2 espacios

}

break;

}

}

} catch (IOException e) {

e.printStackTrace();

} finalmente {

prueba {

if (bufferedReader != null ) {

p>

bufferedReader.close();

}

} captura (IOException e1) {

e1 .printStackTrace();

<

p> }

bufferedReader = null;

proceso = null;

}

devolver mac;

}

/**

* @return nombre de host local

*/

cadena estática pública getHostName() {

p>

InetAddress ia = null;

prueba {

ia = InetAddress.getLocalHost();

} catch (UnknownHostException e) {

p>

// TODO Bloque de captura generado automáticamente

e.printStackTrace();

}

if (ia == null ) {

return "algún error..";

}

else

return ia.getHostName();

}

/**

* @return dirección IP local

*/

cadena estática pública getIPAddress() {

InetAddress ia = null;

prueba {

ia = InetAddress.getLocalHost();

} catch ( UnknownHostException e) {

// TODO Bloque de captura generado automáticamente

e.printStackTrace();

}

if (ia == null ) {

return "algún error..";

}

else

return ia.getHostAddress();

}

/**

* Método principal de prueba.

*

* @param argc

* Parámetros en ejecución.

*/

public static void main(String[] argc) {

String os = getOSName( );

p>

System.out.println("Tipo de SO:"+os);

if(os.startsWith("windows")){

//Local es windows

String mac = getWindowsMACAddress();

System.out.println("Dirección MAC:"+mac);

}else{

//El sistema local que no es Windows suele ser Unix

String mac = getUnixMACAddress();

System.out.println(mac) ;

}

Sistema.out.pr

intln("HostName:"+getHostName());

System.out.println("IPAddress:"+getIPAddress());