首页 > 代码库 > android获取ip和本机的物理地址

android获取ip和本机的物理地址

<span style="font-size:18px;">/**
	 * 获取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()
							&& inetAddress instanceof Inet4Address) {
						// return inetAddress.getAddress().toString();
						return inetAddress.getHostAddress().toString();
					}
				}
			}
		} catch (SocketException ex) {
			Log.e("BaseScanTvDeviceClient", "获取本机IP false =" + ex.toString());
		}

		return null;
	}

	public static String getLocalIPAddress(Context context) {
		WifiManager wifiManager = (WifiManager) context
				.getSystemService(Context.WIFI_SERVICE);
		WifiInfo wifiInfo = wifiManager.getConnectionInfo();
		String ipAddress = FormatIP(wifiInfo.getIpAddress());
		return ipAddress;
	}

	public static String FormatIP(int ip) {
		return Formatter.formatIpAddress(ip);
	}

	// /获取本机IP地址

	public static String getLocalIpAddress(Context ctx) {
		WifiManager wifiManager = (WifiManager) ctx
				.getSystemService(android.content.Context.WIFI_SERVICE);
		WifiInfo wifiInfo = wifiManager.getConnectionInfo();
		int ipAddress = wifiInfo.getIpAddress();
		try {
			return InetAddress.getByName(
					String.format("%d.%d.%d.%d", (ipAddress & 0xff),
							(ipAddress >> 8 & 0xff), (ipAddress >> 16 & 0xff),
							(ipAddress >> 24 & 0xff))).toString();
		} catch (UnknownHostException e) {
			return null;
		}

	}

	// 获取本机的物理地址
	public static String getLocalMacAddress(Context ctx) {
		WifiManager wifi = (WifiManager) ctx
				.getSystemService(Context.WIFI_SERVICE);
		WifiInfo info = wifi.getConnectionInfo();
		return info.getMacAddress();
	}</span>

android获取ip和本机的物理地址