android 获取ip地址和mac地址的多种方式
来源:互联网 发布:福建三千万美元知乎 编辑:程序博客网 时间:2024/04/27 12:17
部分来自网络: /** * 获取移动设备本地IP * @return */protected static InetAddress getLocalInetAddress() {InetAddress ip = null;try {//列举Enumeration<NetworkInterface> en_netInterface = NetworkInterface.getNetworkInterfaces();while (en_netInterface.hasMoreElements()) {//是否还有元素NetworkInterface ni = (NetworkInterface) en_netInterface.nextElement();//得到下一个元素Enumeration<InetAddress> en_ip = ni.getInetAddresses();//得到一个ip地址的列举while (en_ip.hasMoreElements()) {ip = en_ip.nextElement();if (!ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1)break;elseip = null;}if (ip != null) {break;}}} catch (SocketException e) {e.printStackTrace();}return ip;}
/** * 获取本地IP * @return */public static String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface .getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddress> enumIpAddr = intf .getInetAddresses(); enumIpAddr.hasMoreElements();) { InetAddress inetAddress = enumIpAddr.nextElement(); if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException ex) { ex.printStackTrace();} return null; }
/** * 根据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; }
/** * 根据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);}
/** * 根据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:67if(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; }
/** * 根据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;}
0 0
- android 获取ip地址和mac地址的多种方式
- 获取mac地址和IP地址方式
- android获取Mac地址和IP地址
- android获取Mac地址和IP地址
- Android 获取Mac地址和IP地址
- android获取IP地址和MAC地址的方法
- android 获取设备IP和Mac地址
- android 获取设备IP和Mac地址
- Android:获取MAC和IP 地址
- Android 获取Mac地址和IP
- android 获取设备的IP和Mac地址
- android获取本机的IP地址和mac物理地址
- Android获取Ethernet、WIFI的ip和mac地址
- Android获取Ethernet、WIFI的ip和mac地址
- Android获取本机ip地址和Mac地址
- Android中获取本机ip地址和MAC地址
- (转)android获取Mac地址和IP地址
- Android获取设备ip地址和Mac地址
- Android多媒体分析(五)音乐播放器实例
- 非棒子处理器 linux内核移植笔记
- 织物缺陷图像识别算法
- 字符串逆转
- Asp.NET获取文件及其路径
- android 获取ip地址和mac地址的多种方式
- Android多媒体分析(六)对AudioManager的一点补充
- SVD Recommendation System in Ruby
- java接口回调的解析
- 我的第二个 USACO Training--Greedy Gift Givers
- C++著名程序库的比较和学习经验(STL.Boost.GUI.XML.网络等等)
- Python 基本概念
- 主元素问题的线性时间算法
- 项目视频讲解_马震宇-博客