您的位置:首页 > 编程语言 > Java开发

java获取服务器端网卡地址

2011-03-03 15:59 363 查看
package com.ctgusec.bean;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

/**

*

* @author zhupan

* @version 1.0

*/

public class MACAddress {

public MACAddress() {

}

public static String getMACAddress() {

String address = "";

String os = System.getProperty("os.name");

if (os != null && os.startsWith("Windows")) {

try {

String command = "cmd.exe /c ipconfig /all";

Process p = Runtime.getRuntime().exec(command);

BufferedReader br = new BufferedReader(new InputStreamReader(p

.getInputStream()));

String line;

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

if (line.indexOf("Physical Address") > 0) {

int index = line.indexOf(":");

index += 2;

address = line.substring(index);

System.out.println(address);

break;

}

}

br.close();

return address.trim();

} catch (IOException e) {

}

}

return address;

}

// 通过IP获取网卡地址

public static 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;

}

// 通过机器名获取网卡地址

public static 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) {

System.out.println(MACAddress.getMACAddress());

System.out.println(getMacAddressIP("192.168.175.200"));

System.out.println(getMacAddressName("527fefbedd5b43b."));

}

}

package com.ctgusec.bean;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.LineNumberReader;

/**

*

* @author zhupan

* @version 1.0

*/

public class GetMACAddress {

public String getMACAddress(String ipAddress) {

String str = "", strMAC = "", macAddress = "";

try {

Process pp = Runtime.getRuntime().exec("nbtstat -a " + ipAddress);

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) {

strMAC = str.substring(str.indexOf("MAC Address") + 14,

str.length());

break;

}

}

}

} catch (IOException ex) {

return "Can't Get MAC Address!";

}

//

if (strMAC.length() < 17) {

return "Error!";

}

macAddress = strMAC.substring(0, 2) + ":" + strMAC.substring(3, 5)

+ ":" + strMAC.substring(6, 8) + ":" + strMAC.substring(9, 11)

+ ":" + strMAC.substring(12, 14) + ":"

+ strMAC.substring(15, 17);

//

return macAddress;

}

public static void main(String[] args) {

GetMACAddress getMACAddress = new GetMACAddress();

System.out.println(getMACAddress.getMACAddress("192.168.175.66"));

try {

java.lang.Process proc = Runtime.getRuntime().exec("ipconfig /all");

InputStream istr = proc.getInputStream();

byte[] data = new byte[1024];

istr.read(data);

String netdata = new String(data);

System.out.println("Your Mac Address=" + procAll(netdata));

} catch (IOException e) {

System.out.println("error=" + e);

}

}

public static String procAll(String str) {

return procStringEnd(procFirstMac(procAddress(str)));

}

public static String procAddress(String str) {

int indexof = str.indexOf("Physical Address");

if (indexof > 0) {

return str.substring(indexof, str.length());

}

return str;

}

public static String procFirstMac(String str) {

int indexof = str.indexOf(":");

if (indexof > 0) {

return str.substring(indexof + 1, str.length()).trim();

}

return str;

}

public static String procStringEnd(String str) {

int indexof = str.indexOf("/r");

if (indexof > 0) {

return str.substring(0, indexof).trim();

}

return str;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: