호스트 IP와 호스트 이름을 얻을 수 있는 Java 양식 작성을 도와주세요.
java.io.BufferedReader 가져오기;
java.io.IOException 가져오기;
java.io.InputStreamReader 가져오기;
가져오기 java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @className: SystemTool
* @description: 시스템과 관련하여 일반적으로 사용되는 도구 및 방법 현재 구현됨: MAC 주소, IP 주소, 호스트 이름 얻기
* @author: 전 세계에서 웃고 있습니다.
* @createTime : 2010-11-13 08:03:44 PM
*/
공용 클래스 SystemTool {
/**
* 현재 운영 체제 이름을 가져옵니다.
* Windows XP, Linux 등과 같은 운영 체제 이름을 반환합니다.
*/
public static String getOSName() {
return System.getProperty("os.name").toLowerCase();
}
/**
* Get unix 네트워크 카드의 MAC 주소.
* Windows가 아닌 시스템에서는 기본적으로 이 메소드를 호출하여 특수 시스템이 있는 경우 새로운 획득 방법을 계속 확장하십시오. mac 주소.
* @return mac 주소
*/
public static String getUnixMACAddress() {
String mac = null ;
BufferedReader bufferedReader = null;
프로세스 프로세스 = null;
try {
프로세스 = Runtime.getRuntime().exec ("ifconfig eth0");// Linux에서의 명령은 일반적으로 eth0을 로컬 기본 네트워크 카드로 사용하며 표시된 정보에는 MAC 주소 정보가 포함됩니다.
bufferedReader = new BufferedReader(new InputStreamReader(process
.getInputStream()));
문자열 라인 = null;
int 인덱스 = -1;
while ((line = bufferedReader.readLine ()) != null) {
index = line .toLowerCase().indexOf("hwaddr");// 식별 문자열 찾기 [hwaddr]
if (index > = 0) {// 찾았습니다
mac = line .substring(index +"hwaddr".length()+ 1).trim();// mac 주소를 꺼내고 공백을 제거합니다. 양쪽
중단;
}
}
}
catch (IOException e) {
e.printStackTrace();
} 마지막으로 {
시도 {
if (bufferedReader != null) {
bufferedReader.close();
}
} catch (IOException e1) {
e1.printStackTrace() ;
}
bufferedReader = null;
프로세스 = null;
}
return mac;
}
/**
* Widnows 네트워크 카드의 MAC 주소를 가져옵니다.
* @return mac 주소
*/
public static String getWindowsMACAddress() {
String mac = null;
BufferedReader bufferedReader = null;
Process process = null;
try {
process = Runtime.getRuntime().exec("ipconfig /all") // Windows의 명령, 표시 정보에는 mac 주소 정보
bufferedReader = new BufferedReader(new InputStreamReader(process
.getInputStream()));
String line = null;
int index = -1;
while ((line = bufferedReader.readLine()) != null) {
index = line.toLowerCase().indexOf("physical address" );// 식별 문자열 검색 [물리적 주소]
if (index >= 0) {// Found
index = line.indexOf(":") ;/ / ":"의 위치 찾기
if (index>=0) {
mac = line.substring(index + 1).trim();// Take Mac 주소를 출력하고 공백 2개를 제거합니다.
}
break;
}
}
} catch (IOException e) {
e.printStackTrace();
} 마지막으로 {
시도 {
if (bufferedReader != null ) {
p>
bufferedReader.close();
}
} catch (IOException e1) {
e1 .printStackTrace();
<p> }
bufferedReader = null;
프로세스 = null;
}
return mac;
}
/**
* @return 로컬 호스트 이름
*/
public static String getHostName() {
p>InetAddress ia = null;
try {
ia = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
p>
// TODO 자동 생성된 catch 블록
e.printStackTrace();
}
if (ia == null ) {
return "일부 오류..";
}
else
return ia.getHostName();
}
/**
* @return 로컬 IP 주소
*/
public static String getIPAddress() {
InetAddress ia = null;
try {
ia = InetAddress.getLocalHost();
} catch( UnknownHostException e) {
// TODO 자동 생성된 catch 블록
e.printStackTrace();
}
if (ia == null ) {
return "일부 오류..";
}
else
return ia.getHostAddress();
}
/**
* 테스트를 위한 주요 방법.
*
* @param argc
* 매개변수 실행.
*/
public static void main(String[] argc) {
String os = getOSName( );
p>System.out.println("OS 유형:"+os);
if(os.startsWith("windows")){
//로컬은 windows입니다.
String mac = getWindowsMACAddress();
System.out.println("MAC 주소:"+mac);
}else{
//Windows가 아닌 로컬 시스템은 일반적으로 unix입니다.
String mac = getUnixMACAddress();
System.out.println(mac) ;
}
System.out.pr
intln("HostName:"+getHostName());
System.out.println("IPAddress:"+getIPAddress());