컴퓨터 지식 네트워크 - 컴퓨터 문답 - 호스트 IP와 호스트 이름을 얻을 수 있는 Java 양식 작성을 도와주세요.

호스트 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());

上篇: 휴대전화 로그인군 위챗 없어졌는데 어떻게 찾죠? 下篇: 차이나 유니콤과 계약을 맺은 샤오미 휴대폰
관련 내용