android Get WiFi extranet IP method
Get extranet ip public static string getnetip () { URL infoUrl = null; inputstream instream = null; try { // http://iframe.ip138.com/ic.asp infourl = new url ("http://city.ip138.com/city0.asp"); infourl = new url ("http://ip38.com"); urlconnection connection = infourl.openconnection (); HttpURLConnection httpConnection = ( HttpURLConnection) connection; int Responsecode = httPconnection.getresponsecode (); if ( RESPONSECODE == HTTPURLCONNECTION.HTTP_OK) { instream = httpconnection.getinputstream (); bufferedreader reader = new bufferedreader ( new inputstreamreader (instream, "Utf-8")); stringbuilder strber = new stringbuilder (); String line = null; while (line&Nbsp;= reader.readline ()) != null strber.append (line + "\ n"); instream.close (); // Extract IP address from feedback results // int start = strber.indexof ("["); // log.d ("Zph", "" + start); // int end = strber.indexof ("]", start + 1);          // LOG.D ("zph", "" + end);   &NBSp; line = strber.substring (378, 395); line.replaceall (" ", ""); return line ; } } catch (malformedurlexception e) { E.printstacktrace (); } catch (ioexception e) { e.printstacktrace (); } return null; }
Another high-end way to get extranet IP
Public static string getnetip () { string ip = ""; try { string address = "http://ip.taobao.com/service/getIpInfo2.php ? Ip=myip "; url url = new url (address); httpurlconnection
connection = (httpurlconnection) url openconnection (); Connection.setusecaches (False); if (Connection.getresponsecode () == HTTPURLCONNECTION.HTTP_OK) { Inputstream in = connection.getinputstream () ; // will be converted to strings bufferedreader reader = new BufferedReader ( New inputstreamreader (in)); string tmpstring = ""; stringbuilder retjson = new stringbuilder (); while ( (Tmpstring = readeR.readline ()) != null) { retjson.append (tmpstring + "\ n"); } Jsonobject jsonobject = new jsonobject (retjson.tostring ()); string code = jsonobject.getstring ("code"); if (Code.equals ("0")) { jsonobject data = jsonobject.getjsonobject ("Data"); IP = data.getstring ("IP") + "(" + data.getstring ("Country") + Data.getstring ("area") + "district" + data.getstring ("region") + data.getstring (" City ") + data.getstring (" ISP ") + ") "; log.e (" Hint ", "
Your IP address is: " + ip"; } else { ip = ""; LOG.E ("Hint", IP interface exception, cannot get IP address!) "); } } else { ip =&nBSP; ""; LOG.E ("hint", network connection exception, cannot get IP address!) "); } } catch (exception e) { IP = "" "; log.e (" Hint ", " an exception occurred while obtaining an IP address, the exception information is: " + e.tostring ()); } return IP; }
Android access to wifi IP address
Wifimanager wifimanage= (Wifimanager) Context.getsystemservice (context.wifi_service);//Get WifiManager
// Check to see if WiFi opens if
(!wifimanage.iswifienabled ()) {
wifimanage.setwifienabled (true);
}
Wifiinfo wifiinfo= wifimanage.getconnectioninfo ();
String Ip=inttoip (Wifiinfo.getipaddress ());
//convert the obtained int to a real IP address, refer to the Web, modify the next
private String inttoip (int i) {return
(I & 0xFF) + "." + ((I >> 8) & 0xFF)? + "." + ((I >>) & 0xFF) + "." + ((i >>) & 0xFF);
OK, is that good? Oh, don't forget to add permission
<uses-permission= "" Android:name= "Android.permission.ACCESS_WIFI_STATE" ></uses>
<uses- permission= "" Android:name= "Adnroid.permission.CHANGE_WIFI_STATE" ></use
Android development gets wifi and wired IP addresses
Set Permissions First:
<uses-permission android:name= "Android.permission.ACCESS_WIFI_STATE" ></uses-permission>
< Uses-permission android:name= "Android.permission.CHANGE_WIFI_STATE" ></uses-permission>
< Uses-permission android:name= "Android.permission.WAKE_LOCK" ></uses-permission>
/** * if (Intf.getname (). toLowerCase (). Equals ("eth0") | | intf.getname (). toLowerCase (). Equals ("Wlan0")) * says: Only filters for wireless and wired ip. networkinterface have a lot of names * such as SIM0,REMT1 ... And so on. I don't need it. * * if (!ipaddress.contains ("::")) * represents: Filter out the address of the IPv6. Both wireless and cable have this address, * my side. The address is generally: fe80::288:88ff:fe00:1%eth0 fe80::ee17:2fff:fece: c0b4%wlan0 * are generally present in the first cycle. The second cycle is the real IPv4 address . * * @return * @throws SocketException */ public string getipaddress () throws socketexception { string ipaddress = ""; Enumeration< networkinterface> netinterfaces = null; try { netInterfaces = networkinterface.getnetworkinterfaces (); while (netinterfaces.hasmoreelements ()) { NETWORKINTERFACE&NBSp;intf = netinterfaces.nextelement (); if (Intf.getname (). ToLowerCase (). Equals ("eth0 ") | | intf.getname (). toLowerCase (). Equals (" Wlan0 ")) { for (enumeration <inetaddress> enumipaddr = intf.getinetaddresses () enumipaddr.hasmoreelements ();) { inetaddress inetaddress = enumipaddr.nextelement (); if (! Inetaddress.isloopbackaddress ()) { ipaddress = inetaddress.gethostaddress (). toString (); if (!ipaddress.contains ("::") {// ipv6 address ipaddress = ipaddress; } } } } else { continue; } } } catch (exception e) { e.printstacktrace (); } // final contentresolver mcontentresolver = Getcontentresolver (); // settings.system.putint ( mContentResolver, // settings.system.wifi_use_ static_ip, 1); // settings.system.putstring ( mContentResolver, // settings.system.wifi_static_ip, "Your IP address"; return ipaddress; } public string getaddress () { wifimanager wifimanager = (Wifimanager) getactivity (). Getsystemservice (Context.wifi_service); //
Determine if WiFi is open if (!wifimanager.iswifienabled ()) { Wifimanager.setwifienabled (True); } wifiinfo wifiinfo = Wifimanager.getconnectioninfo (); dhcpinfo info = wifimanager.getdhcpinfo (); int ipaddress = wifiinfo.getipaddress (); int ii = info.ipaddress; // return inttoip (ipaddrESS); return ipaddress + " dhcp: " + ii; } Private string inttoip (int i) { return (I & 0xff) + "." + ((i >> 8) & 0xff) + "." + ((i >> 16) & 0xff) + "." + (I&NBSP;>>&NBSP;24&NBSP;&&NBSP;0XFF); } }