锁定老帖子 主题:Java 获取本机IP
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-04-27
最后修改:2010-11-09
开始我在Linux下用InetAddress.getLocalHost()方法获取本机IP地址, 在Windows下获得硬件地址,windows 7 测试可用:
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 { Enumeration <NetworkInterface> em = NetworkInterface.getNetworkInterfaces (); while (em.hasMoreElements ()) { NetworkInterface nic = em.nextElement (); //System.out.println ("nic.getDisplayName ():" + nic.getDisplayName ()); //System.out.println ("nic.getName ():" + nic.getName ()); byte[] b = nic.getHardwareAddress (); if (b == null) { continue; } for (int i = 0; i < b.length; i++) { System.out.print (byteHEX(b[i])+"-"); } System.out.println (); } } 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 (); Enumeration <?> e2 = ni.getInetAddresses (); while (e2.hasMoreElements ()) { InetAddress ia = (InetAddress) e2.nextElement (); ip = ia.getHostAddress (); } } } catch (SocketException e) { e.printStackTrace (); System.exit (-1); } return ip; } /* 一个将字节转化为十六进制ASSIC码的函数 */ 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; } }
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 7803 次