先申明下:這段代碼非本人親做,但經過測試,是正確可行的,故拿來共饗。其核心在于Process流,其余的無須我多說了。
import java.io.*;
public class GetMac
{
//通過IP獲取網卡地址
private String getMacAddressIP(String remotePcIP){
String str="";
String macAddress="";
try {
Process pp= Runtime.getRuntime().exec ("nbtstat -A " + remotePcIP);
InputStreamReader ir = new InputStreamReader(pp.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
for (int i = 1; i <100; i++)
{
str=input.readLine();
if (str!=null)
{
if(str.indexOf("MAC Address")>1)
{ macAddress=str.substring(str.indexOf("MAC Address")+14,str.length());
break;
}
}
}
}
catch (IOException ex) {}
return macAddress;
}
//通過機器名獲取網卡地址
private String getMacAddressName(String remotePcIP){
String str="";
String macAddress="";
try {
Process pp= Runtime.getRuntime().exec ("nbtstat -a " + remotePcIP);
InputStreamReader ir = new InputStreamReader(pp.getInputStream());
LineNumberReader input = new LineNumberReader (ir);
for (int i = 1; i <100; i++)
{
str=input.readLine();
if (str!=null)
{
if(str.indexOf("MAC Address")>1)
{ macAddress=str.substring(str.indexOf("MAC Address")+14,str.length());
break;
}
}
}
}
catch (IOException ex) {}
return macAddress;
}
public static void main(String[] args)
{
GetMac getmac;
getmac=new GetMac();
String mac="";
mac=getmac.getMacAddressIP("192.168.0.18");//YOUR IP
System.out.println(mac);
mac=getmac.getMacAddressName("tom");// YOUR HOST-NAME
System.out.println(mac);
}
}
posted on 2006-01-11 13:06
zjw_albert 閱讀(245)
評論(0) 編輯 收藏