-
2021-07-10 15:26:15
代码如下:需要注意的是,请连接真机调试,否则会提示 plus 的错误
getDeviceMac() { //获取本机Mac地址
var deviceMac = ""
var net = plus.android.importClass("java.net.NetworkInterface")
var wl0 = net.getByName('wlan0')
var macByte = wl0.getHardwareAddress()
deviceMac = ''
for (var i = 0; i < macByte.length; i++) {
var tmp = "";
var num = macByte[i];
if (num < 0) {
tmp = (255 + num + 1).toString(16);
} else {
tmp = num.toString(16);
}
if (tmp.length == 1) {
tmp = "0" + tmp;
}
deviceMac += tmp;
}
console.log(deviceMac)
},更多相关内容 -
Android开发获取手机Mac地址适配所有Android版本
2020-08-19 11:57:53主要介绍了Android开发获取手机Mac地址适配所有Android版本,需要的朋友可以参考下 -
iOS如何获取手机的Mac地址
2021-01-06 00:09:25首先说明下,下面两种方法均可以获得手机的mac地址,但是有个限制,是在iOS7以下才可以获得。iOS7以后苹果对于sysctl和ioctl进行了技术处理,MAC地址返回的都是02:00:00:00:00:00。 官方文档上这样写的: “Twolow-... -
Android手机获取Mac地址的几种方法
2021-01-20 10:32:22* 通过WiFiManager获取mac地址 * @param context * @return */ private static String tryGetWifiMac(Context context) { WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService... -
Android获取手机MAC地址
2019-10-18 08:53:57Android获取手机mac地址根据系统版本有几个不同的获取方式,6.0之前的 6.0-7.0的,7.0之后的都各不一样,直接上代码: /** * Android 6.0 之前(不包括6.0)获取mac地址 * 必须的权限 <uses-permission ...Android获取手机mac地址根据系统版本有几个不同的获取方式,6.0之前的 6.0-7.0的,7.0之后的都各不一样,直接上代码:
/** * Android 6.0 之前(不包括6.0)获取mac地址 * 必须的权限 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> * @param context * @return */ private String getMacDefault(Context context) { String mac = "0"; if (context == null) { return mac; } WifiManager wifi = (WifiManager)context.getSystemService(Context.WIFI_SERVICE); WifiInfo info = null; try { info = wifi.getConnectionInfo(); } catch (Exception e) { e.printStackTrace(); } if (info == null) { return null; } mac = info.getMacAddress(); return mac; } /** * Android 6.0-Android 7.0 获取mac地址 */ private String getMacAddress() { String macSerial = null; String str = "0"; try { Process pp = Runtime.getRuntime().exec("cat/sys/class/net/wlan0/address"); InputStreamReader ir = new InputStreamReader(pp.getInputStream()); LineNumberReader input = new LineNumberReader(ir); while (null != str) { str = input.readLine(); if (str != null) { macSerial = str.trim(); //去空格 break; } } } catch (IOException ex) { // 赋予默认值 ex.printStackTrace(); } return macSerial; } /** * Android 7.0之后获取Mac地址 * 遍历循环所有的网络接口,找到接口是 wlan0 * 必须的权限 <uses-permission android:name="android.permission.INTERNET"></uses-permission> * @return */ private String getMacFromHardware() { try { List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface nif : all) { if (!nif.getName().equalsIgnoreCase("wlan0")) continue; byte[] macBytes = nif.getHardwareAddress(); if (macBytes == null) { return null; } StringBuilder res1 = new StringBuilder(); for (byte b : macBytes) { res1.append(String.format("%02X:", b)); } if (res1.length() > 0) { res1.deleteCharAt(res1.length() - 1); } return res1.toString(); } } catch (Exception ex) { ex.printStackTrace(); } return null; } private String getMac() { String mac = "0"; if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) { mac = getMacDefault(this); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT < Build.VERSION_CODES.N) { mac = getMacAddress(); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { mac = getMacFromHardware(); } if (mac == null || mac.equals("")) { mac = "0"; } return mac; }
调用getMac()方法即可获取到各系统版本手机的mac地址。需要权限如下:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
-
Android获取手机MAC地址.pdf
2021-08-07 18:00:54Android获取手机MAC地址.pdf -
js获取mac地址、ip地址.html
2019-07-26 10:11:22JS获取计算机mac地址以及IP和用户名的实现方法,只适用于IE且activeX开启 -
wifi探针获取手机mac地址
2021-06-05 03:09:22项目中有需求用wifi设备获取接入终端的mac地址,这个利用wifi探针可以做到,但有局限性,就是手机必须连接上wifi或者说发起了连接请求,目前仍做不到用户的无感知探测(PS:这么猥琐的方式还是不鼓励)。透过表面看...项目中有需求用wifi设备获取接入终端的mac地址,这个利用wifi探针可以做到,但有局限性,就是手机必须连接上wifi或者说发起了连接请求,目前仍做不到用户的无感知探测(PS:这么猥琐的方式还是不鼓励)。透过表面看本质,探索下原因,主要是Beacon和Probe Request在发挥作用
下面引用了802.11协议簇里面关于wifi连接过程的描述,从网络上copy的,更详细的可以看IEEE相关文档
0x1: 普通无加密连接过程
1. AP发送Beacon广播管理帧
因为AP发送的这个Beacon管理帧数据包是广播地址,所以我们的PCMIA内置网卡、或者USB外界网卡会接收到这个数据包,然后在我们的"无线连接列表"中显示出来
2. 客户端向承载指定SSID的AP发送Probe Request(探测请求)帧
当我们点击"连接"的时候,无线网卡就会发送一个Prob数据帧,用来向AP请求连接
3. AP接入点对客户端的SSID连接请求进行应答
AP对客户端的连接作出了回应,并表示不接受任何形式的"帧有效负载加密(frame-payload-encryption)"
4. 客户端对目标AP请求进行身份认证(Authentication)
5. AP对客户端的身份认证(Authentication)请求作出回应
AP回应,表示接收身份认证
6. 客户端向AP发送连接(Association)请求
身份认证通过之后,所有的准备工作都做完了,客户端这个时候可以向WLAN AP发起正式的连接请求,请求接入WLAN
7. AP对连接(Association)请求进行回应
AP对客户端的连接请求(Association)予以了回应(包括SSID、性能、加密设置等)。至此,Wi-Fi的连接身份认证交互就全部结束了,之后就可以正常进行数据发送了
8. 客户端向AP请求断开连接(Disassociation)
当我们点击"断开连接"的时候,网卡会向AP发送一个断开连接的管理数据帧,请求进行断开连接
-
获取android手机mac地址
2021-04-22 20:58:22android系统6.0之后,对mac地址的获取添加了权限,按照普通的方法获取如下:WifiManager wifiMan = (WifiManager)context.getSystemService(Context.WIFI_SERVICE) ;WifiInfo wifiInf = wifiMan.getConnectionInfo()...android系统6.0之后,对mac地址的获取添加了权限,按照普通的方法获取如下:
WifiManager wifiMan = (WifiManager)context.getSystemService(Context.WIFI_SERVICE) ;
WifiInfo wifiInf = wifiMan.getConnectionInfo();
return wifiInf.getMacAddress();
但是这种情况,获取到的mac地址都是:02:00:00:00:00:00,看来就需要另一种方法来获取mac地址:
private static final String marshmallowMacAddress = "02:00:00:00:00:00";
private static final String fileAddressMac = "/sys/class/net/wlan0/address";
public static String getAdresseMAC(Context context) {
WifiManager wifiMan = (WifiManager)context.getSystemService(Context.WIFI_SERVICE) ;
WifiInfo wifiInf = wifiMan.getConnectionInfo();
if(wifiInf !=null && marshmallowMacAddress.equals(wifiInf.getMacAddress())){
String result = null;
try {
result= getAdressMacByInterface();
if (result != null){
return result;
} else {
result = getAddressMacByFile(wifiMan);
return result;
}
} catch (IOException e) {
Log.e("MobileAccess", "Erreur lecture propriete Adresse MAC");
} catch (Exception e) {
Log.e("MobileAcces", "Erreur lecture propriete Adresse MAC ");
}
} else{
if (wifiInf != null && wifiInf.getMacAddress() != null) {
return wifiInf.getMacAddress();
} else {
return "";
}
}
return marshmallowMacAddress;
}
接下来,来分析一下其中两个重要的方法
1.getAdressMacByInterface()
private static String getAdressMacByInterface(){
try {
List all = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface nif : all) {
if (nif.getName().equalsIgnoreCase("wlan0")) {
byte[] macBytes = nif.getHardwareAddress();
if (macBytes == null) {
return "";
}
StringBuilder res1 = new StringBuilder();
for (byte b : macBytes) {
res1.append(String.format("%02X:",b));
}
if (res1.length() > 0) {
res1.deleteCharAt(res1.length() - 1);
}
return res1.toString();
}
}
} catch (Exception e) {
Log.e("MobileAcces", "Erreur lecture propriete Adresse MAC ");
}
return null;
}
2.getAddressMacByFile(wifiMan)
private static String getAddressMacByFile(WifiManager wifiMan) throws Exception {
String ret;
int wifiState = wifiMan.getWifiState();
wifiMan.setWifiEnabled(true);
File fl = new File(fileAddressMac);
FileInputStream fin = new FileInputStream(fl);
ret = crunchifyGetStringFromStream(fin);
fin.close();
boolean enabled = WifiManager.WIFI_STATE_ENABLED == wifiState;
wifiMan.setWifiEnabled(enabled);
return ret;
}
private static String crunchifyGetStringFromStream(InputStream crunchifyStream) throws IOException {
if (crunchifyStream != null) {
Writer crunchifyWriter = new StringWriter();
char[] crunchifyBuffer = new char[2048];
try {
Reader crunchifyReader = new BufferedReader(new InputStreamReader(crunchifyStream, "UTF-8"));
int counter;
while ((counter = crunchifyReader.read(crunchifyBuffer)) != -1) {
crunchifyWriter.write(crunchifyBuffer, 0, counter);
}
} finally {
crunchifyStream.close();
}
return crunchifyWriter.toString();
} else {
return "No Contents";
}
}
-
获取手机MAC地址
2016-06-08 14:28:15/** * 获取手机MAC地址 * @return */ public String getLocalMac() { String mac = ""; // 获取wifi管理器 WifiManager wifiMng = (WifiManager)getSystemService(Cont -
Android手机如何获取Mac地址
2021-06-04 16:33:56最常用的方法,通过WiFiManager获取:/*** 通过WiFiManager获取mac地址* @param context* @return*/private static String tryGetWifiMac(Context context) {WifiManager wm = (WifiManager) context.... -
Android 获取蓝牙Mac地址的正确方法
2020-08-28 15:05:55android 从6.0开始,通过BluetoothAdapter.getDefaultAdapter().getAddress()获取的地址是一个固定值02:00:00:00:00:00。下面给大家介绍Android 获取蓝牙Mac地址的正确方法,一起看看吧 -
ios-GetIphoneMac获取iphone设备mac地址.zip
2019-07-11 18:40:18该工程主要应用于获取苹果手机的mac地址,但前提是连接了wifi路由的情况下。原理:我们知道苹果是不允许我们获取其设备硬件的mac地址的,在iOS7以下才可以获得。iOS7以后苹果对于sysctl和ioctl进行了技术处理,MAC... -
Android手机获取Mac地址的方法
2020-08-30 11:38:41主要为大家详细介绍了Android手机获取Mac地址的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
js获取mac地址_Js获取客户端IP地址与MAC地址
2021-06-13 08:00:24摘要 腾兴网为您分享:Js获取客户端IP地址与MAC地址,小象优品,悟空识字,顺丰,企业滴滴等软件知识,以及外研版五年级上册点读,photoshop6.0,盘点软件,凡客网上购物商城,天正建筑2014,第一创业网上行情,... -
Js获取客户端MAC地址
2013-12-10 16:26:46单点登录时需要获取用户的电脑IP或mac地址来进行单点登录验证。 -
NJS如何获取安卓手机MAC地址 安卓版本8.0以上
2021-06-03 02:01:42代码没问题, 应该是系统限制了 硬件标识符访问权 为给用户提供更严格的... Log.e("macAddress",""+mac_address); } 就是说, 不是Android 8的问题, Android 6.0 就改了. 旧的代码不能用, 新的代码在7.0以后可以试一下. -
Android_获取手机IP和MAC地址
2016-02-19 12:30:42Android中打开APP软件获取手机IP和MAC地址 -
获取手机Mac地址
2016-07-27 10:41:33private String getMacAddress(){ String result = ""; WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfo = wifiManager. -
Android获取手机Mac地址
2016-02-21 23:38:34WifiManager wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE); WifiInfo info= wifi.getConnectionInfo(); Log.i("111", "qqqqqqqq" + info.getMacAddress()); -
获取mac地址
2011-12-21 11:48:49获取MAC地址的几种方法的一个类,希望能对大家有所帮助。 -
Android手机获取Mac地址的几种方法,androidmac
2021-06-02 15:29:01Android手机获取Mac地址的几种方法,androidmac最常用的方法,通过WiFiManager获取:/*** 通过WiFiManager获取mac地址* @param context* @return*/private static String tryGetWifiMac(Context context) {... -
获取手机mac地址和串号IMEI
2017-02-14 21:55:11IMEI 是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产... -
java获取手机的物理地址即Mac地址
2020-06-10 09:24:09/** * @ClassName GetPhoneLocationUtil * @Description 根据手机号码查询出归属地 * @Author 戴书博 * @Date 2019/11/4 15:19 * @Version 1.0 **/ @Slf4j public class GetPhoneLocationUtil { /** * @Method get... -
android手机获取mac地址,即无线网卡的mac地址
2021-09-13 16:58:03public static String getMac() { try { List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces()); for (NetworkInterface nif : all) { if (!"wlan0".equalsIgnoreCase...