博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 获取ip地址和mac地址的多种方式
阅读量:6893 次
发布时间:2019-06-27

本文共 5052 字,大约阅读时间需要 16 分钟。

部分来自网络:         /**     * 获取移动设备本地IP     * @return     */    protected static InetAddress getLocalInetAddress() {        InetAddress ip = null;        try {            //列举            Enumeration
en_netInterface = NetworkInterface.getNetworkInterfaces(); while (en_netInterface.hasMoreElements()) {
//是否还有元素 NetworkInterface ni = (NetworkInterface) en_netInterface.nextElement();//得到下一个元素 Enumeration
en_ip = ni.getInetAddresses();//得到一个ip地址的列举 while (en_ip.hasMoreElements()) { ip = en_ip.nextElement(); if (!ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) break; else ip = null; } if (ip != null) { break; } } } catch (SocketException e) { e.printStackTrace(); } return ip; }
?12345678910111213141516171819202122 /** * 获取本地IP * @return */public static String getLocalIpAddress() { try { for (Enumeration
en = NetworkInterface .getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration
enumIpAddr = intf .getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException ex) { ex.printStackTrace(); } return null; }
?12345678910111213141516171819202122232425 /** * 根据IP地址获取MAC地址 * @return */ @SuppressLint({ "NewApi", "DefaultLocale" }) public static String getMacAddress(){ String strMacAddr = null; try { //获得IpD地址 InetAddress ip = getLocalInetAddress(); byte[] b = NetworkInterface.getByInetAddress(ip).getHardwareAddress(); StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.length; i++) { if (i != 0) { buffer.append(':'); } String str = Integer.toHexString(b[i] & 0xFF); buffer.append(str.length() == 1 ? 0 + str : str); } strMacAddr = buffer.toString().toUpperCase(); } catch (Exception e) { } return strMacAddr; }?1234567891011121314151617181920212223242526272829303132333435363738 /** * 根据IP获取本地Mac * @param context * @return */public static String getLocalMacAddressFromIp(Context context) { String mac_s= ""; try { byte[] mac; NetworkInterface ne=NetworkInterface.getByInetAddress(InetAddress.getByName(getLocalIpAddress())); mac = ne.getHardwareAddress(); mac_s = byte2hex(mac); } catch (Exception e) { e.printStackTrace(); } return mac_s;} /** * 二进制转十六进制 * @param b * @return */public static String byte2hex(byte[] b) { StringBuffer hs = new StringBuffer(b.length); String stmp = ""; int len = b.length; for (int n = 0; n < len; n++) { stmp = Integer.toHexString(b[n] & 0xFF); if (stmp.length() == 1) hs = hs.append("0").append(stmp); else { hs = hs.append(stmp); } } return String.valueOf(hs);}?12345678910111213141516171819202122232425262728293031323334353637383940 /** * 根据busybox获取本地Mac * @return */public static String getLocalMacAddressFromBusybox(){ String result = ""; String Mac = ""; result = callCmd("busybox ifconfig","HWaddr"); //如果返回的result == null,则说明网络不可取 if(result==null){ return "网络异常"; } //对该行数据进行解析 //例如:eth0 Link encap:Ethernet HWaddr 00:16:E8:3E:DF:67 if(result.length()>0 && result.contains("HWaddr")==true){ Mac = result.substring(result.indexOf("HWaddr")+6, result.length()-1); result = Mac; } return result;} private static String callCmd(String cmd,String filter) { String result = ""; String line = ""; try { Process proc = Runtime.getRuntime().exec(cmd); InputStreamReader is = new InputStreamReader(proc.getInputStream()); BufferedReader br = new BufferedReader (is); while ((line = br.readLine ()) != null && line.contains(filter)== false) { result += line; } result = line; } catch(Exception e) { e.printStackTrace(); } return result; }?1234567891011 /** * 根据wifi信息获取本地mac * @param context * @return */public static String getLocalMacAddressFromWifiInfo(Context context){ WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); WifiInfo winfo = wifi.getConnectionInfo(); String mac = winfo.getMacAddress(); return mac;}

 

转载于:https://www.cnblogs.com/yico/p/3494201.html

你可能感兴趣的文章
3月31日云栖精选夜读:数据科学咨询:想要转型毫无头绪?看了本文你不慌
查看>>
程序猿日记S01E03
查看>>
如何解决域名解析不生效问题?
查看>>
字符串指针修改问题
查看>>
通过JCONSOLE监控TOMCAT的JVM使用情况
查看>>
jquery editable plugin--点击编辑文字插件
查看>>
[Java] TreeMap、HashMap、LindedHashMap的区别
查看>>
MariaDB · 新特性 · 窗口函数
查看>>
thinkphp 3.2分布式数据库读写分离扩展阅读
查看>>
iOS流布局UICollectionView系列二——UICollectionView的代理方法
查看>>
我的友情链接
查看>>
offsetleft
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
mysql5.6的安装(rpm)
查看>>
Gamebryo实例学习之八InputDemo
查看>>
关于CSDN2013博客之星的一些看法
查看>>
"安全删除硬件并弹出媒体"的列表中出现内置硬盘的解决办法.
查看>>
LINUX中JDK环境变量配置
查看>>
linux 切换用户之后变成-bash-3.2$的解决方法
查看>>