失去设备的ip
得到设备的ip
1.
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo.getIpAddress();
2.
try { Socket socket = new Socket("www.droidnova.com", 80); Log.i("", socket.getLocalAddress().toString()); } catch (Exception e) { Log.i("", e.getMessage()); }
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; }
3.
WifiManager wifiManager = (WifiManager)getSystemService(WIFI_SERVICE); DhcpInfo dhcpInfo = wifiManager.getDhcpInfo(); String[] dhcpInfos = dhcpInfo.toString().split(" "); String realIP = "oops, no ip"; int i = 0; while (i < dhcpInfos.length) { if (dhcpInfos[i].equals("ipaddr")) { realIP = dhcpInfos[i+1]; break; } i++; }
4.
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
DhcpInfo dhcpInfo = wifiManager.getDhcpInfo();
// [...]
tv = (TextView) findViewById(R.id.id_wlan_ip_address);
tv.setText(intToIp(dhcpInfo.ipAddress));
// [...]
/**
* http://teneo.wordpress.com/2008/12/23/java-ip-address-to-integer-and-back/
*/
private String intToIp(int i) {
return ( i & 0xFF) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
((i >> 24 ) & 0xFF)
;
}