这两种方法获取手机当前网络的ip有何区别?
方法1:
public 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) { Log.e(LOG_TAG, ex.toString()); } return null; } WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress();
public static String longToIP(long longIp) {// linux long是低位在前,高位在后StringBuffer sb = new StringBuffer("");// 将高24位置0sb.append(String.valueOf((longIp & 0x000000FF)));sb.append(".");// 将高16位置0,然后右移8位sb.append(String.valueOf((longIp & 0x0000FFFF) >>> 8));sb.append(".");// 将高8位置0,然后右移16位sb.append(String.valueOf((longIp & 0x00FFFFFF) >>> 16));sb.append(".");// 直接右移24位sb.append(String.valueOf((longIp >>> 24)));return sb.toString();}