Linux下用Java獲取本機IP地址
轉載自:
http://blog.sina.com.cn/s/blog_956a67ae010101tr.html
開始我在Linux下用InetAddress.getLocalHost()方法獲取本機IP地址,
得到的結果總是:127.0.1.1。
原來這個是etc/hosts檔案中的配置,並非網路卡的IP地址。
後來多方尋訪,終於得下以下程式碼,
執行後在控制檯輸出IP與MAC地址。
http://blog.sina.com.cn/s/blog_956a67ae010101tr.html
開始我在Linux下用InetAddress.getLocalHost()方法獲取本機IP地址,
得到的結果總是:127.0.1.1。
原來這個是etc/hosts檔案中的配置,並非網路卡的IP地址。
後來多方尋訪,終於得下以下程式碼,
執行後在控制檯輸出IP與MAC地址。
- import java.net.*;
- import java.util.*;
- public class getIP {
- public static void main(String[] args) {
- getIP t = new getIP();
- System.out.println(t.getLocalIP());
- System.out.println(t.getMacAddr());
- }
- public String getMacAddr() {
- String MacAddr = "";
- String str = "";
- try {
- NetworkInterface NIC = NetworkInterface.getByName("eth0");
- byte[] buf = NIC.getHardwareAddress();
- for (int i = 0; i < buf.length; i++) {
- str = str + byteHEX(buf[i]);
- }
- MacAddr = str.toUpperCase();
- } catch (SocketException e) {
- e.printStackTrace();
- System.exit(-1);
- }
- return MacAddr;
- }
- public String getLocalIP() {
- String ip = "";
- try {
- Enumeration<?> e1 = (Enumeration<?>) NetworkInterface.getNetworkInterfaces();
- while (e1.hasMoreElements()) {
- NetworkInterface ni = (NetworkInterface) e1.nextElement();
- if (!ni.getName().equals("eth0")) {
- continue;
- } else {
- Enumeration<?> e2 = ni.getInetAddresses();
- while (e2.hasMoreElements()) {
- InetAddress ia = (InetAddress) e2.nextElement();
- if (ia instanceof Inet6Address)
- continue;
- ip = ia.getHostAddress();
- }
- break;
- }
- }
- } catch (SocketException e) {
- e.printStackTrace();
- System.exit(-1);
- }
- return ip;
- }
- public static String byteHEX(byte ib) {
- char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a','b', 'c', 'd', 'e', 'f' };
- char[] ob = new char[2];
- ob[0] = Digit[(ib >>> 4) & 0X0F];
- ob[1] = Digit[ib & 0X0F];
- String s = new String(ob);
- return s;
- }
- }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2109694/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java獲取本機ip地址Java
- java獲取本機的ip地址Java
- Java獲取本機名稱、本機MAC地址、IP地址JavaMac
- jQuery獲取本機ip地址jQuery
- 用Linux命令列獲取本機外網IP地址Linux命令列
- Java獲取本機IPJava
- Linux Shell指令碼中獲取本機ip地址方法Linux指令碼
- 實用Linux下獲取公網IP地址Linux
- 獲取Linux本機IP命令Linux
- javascript獲取本機ip地址程式碼例項JavaScript
- java獲取ip地址和mac地址JavaMac
- python獲取本機IP、mac地址、計算機名PythonMac計算機
- Java 中獲取MAC地址 和IP地址JavaMac
- iOS專案開發實戰——獲取本機IP地址iOS
- Python 基礎練習 —— 獲取本機 Mac 地址、ip 地址和主機名PythonMac
- gethostbyname() -- 用域名或主機名獲取IP地址
- linux及windows下使用Python獲取IP地址LinuxWindowsPython
- Java實現獲取本機Ip的工具類Java
- python如何獲取本機ipPython
- saltstack獲取IP地址
- 獲取IP地址方法
- 獲取IP地址命令
- ASPNET獲取IP地址 MAC地址Mac
- Oracle中獲取主機名和IP地址Oracle
- 美國ip地址如何獲取?
- 獲取真實IP地址
- qt獲取本機IP地址、計算機名、網路連線名、MAC地址、子網掩碼、廣播地址QT計算機Mac
- 在cmd中獲取ip地址和主機名
- C#獲得本機的計算機名及IP地址C#計算機
- 如何獲取海外住宅IP地址?
- java Socket 獲取本地主機ipJava
- Kali Linux常用服務配置教程獲取IP地址Linux
- iOS 獲取手機外網和內網IP地址iOS內網
- JS獲取客戶端IP地址與機器名JS客戶端
- Linux 下獲取LAN中指定IP的網路卡的MAC(實體地址)LinuxMac
- Android手機怎麼獲取印表機的IP地址呢Android
- Apapche獲取真實IP地址方法
- 獲取本地的IP地址(內網)內網