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());