前几天因公司项目上线,临时添加了需求:用户登录的时候需要获取IP地址以及mac地址传入至后台。
找了一些方法都点复杂,自己总结了一下:
public static String getInNetIp(Context context) {
//获取wifi服务
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);
return ip;
}
//这段是转换成点分式IP的码
private static String intToIp(int ip) {
return (ip & 0xFF) + "." + ((ip >> 8) & 0xFF) + "." + ((ip >> 16) & 0xFF) + "." + (ip >> 24 & 0xFF);
}
*/
/*private void initView() {
mTvText = (TextView) findViewById(R.id.tv_text);
String localMacAddressFromBusybox = getLocalMacAddressFromBusybox();
// String getaa = getaa();
String mac = getMac(this);
mTvText.setText(localMacAddressFromBusybox+"mac地址获取"+mac);
Log.e("TAG", "initView: "+localMacAddressFromBusybox+"======"+mac);
}*/
/* public String getaa() {//获取物理地址
List interfaces = null;
try {
interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface networkInterface : interfaces) {
if (networkInterface != null && TextUtils.isEmpty(networkInterface.getName()) == false) {
if (“wlan0”.equalsIgnoreCase(networkInterface.getName())) {
byte[] macBytes = networkInterface.getHardwareAddress();
if (macBytes != null && macBytes.length > 0) {
StringBuilder str = new StringBuilder();
for (byte b : macBytes) {
str.append(String.format(“%02X:”, b));
}
if (str.length() > 0) {
str.deleteCharAt(str.length() – 1);
}
return str.toString();
}
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return “unknown”;
}