利用jdk1 6 獲取伺服器ip和mac

2021-06-07 13:12:23 字數 967 閱讀 8390

剛開始最初的想法是呼叫系統命令來獲取,但是這樣的話需要考慮不同的作業系統的差異,不同作業系統執行的命令是不一樣的。

1. 獲取作業系統

system.getproperty("os.name").tolowercase();

可能取值:win7 --> windows 7 ; windows ,其他

2. windows 獲取ip 和mac 執行命令ipconfig/all

process process = runtime.getruntime().exec("ipconfig /all");

inputstreamreader ir = new inputstreamreader(process.getinputstream());

linenumberreader input = new linenumberreader(ir);

string line;

while ((line = input.readline()) != null)

if (line.indexof(" ip address") > 0)

但是此種方法對於win7無法獲取

對於linux  process = runtime.getruntime().exec("ifconfig bond0");

但是有乙個問題,可能我們一台機器上不止乙個網絡卡,有可能有虛擬的網絡卡,這樣子的話用執行命令就不好處理

而jdk1.6其實自帶了api來查詢ip和mac

public static string getipaddr() catch (socketexception e)

inetaddress ip = null;

byte mac;

while (allnetinte***ces.hasmoreelements()) }}

} catch (exception e)

// }

return null;

}

伺服器獲取本地Ip位址

string getlocalip char buff bufsiz struct ifconf conf conf.ifc len bufsiz conf.ifc buf buff const int s socket pf inet,sock dgram,0 ioctl s,siocgifcon...

獲取伺服器的IP位址和MAC位址

獲取伺服器的ip位址和mac位址 獲取伺服器的ip位址方法以dns法較為簡單實用,如下 以下是引用片段 private void buttonip click object sender,system.eventargs e else 以下是引用片段 using system.management ...

java 伺服器 獲取web端IP

在jsp裡,獲取客戶端的ip位址的方法是 request.getremoteaddr 這種方法在大部分情況下都是有效的。但是在通過了apache,squid等反向 軟體就不能獲取到客戶端的真實ip位址了。如果使用了反向 軟體,用request.getremoteaddr 方法獲取的ip位址是 127...