android 获取IP端口号地址

前几天因公司项目上线,临时添加了需求:用户登录的时候需要获取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”;
}

    原文作者:Y_&_W
    原文地址: https://blog.csdn.net/qq_43317486/article/details/110916793
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞