[Android] Get this machine IP address

The method is to use the URL: http://pv.sohu.com/cityjson?ie=utf-8, return String Type of ip address: 
public static String getNetIp() {

String ip
= "";
InputStream inputStream
= null;
try {
URL infoUrl
= new URL("http://pv.sohu.com/cityjson?ie=utf-8"< span style="color: #000000;">);
URLConnection connection = infoUrl.openConnection();
HttpURLConnection httpConnection
= (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
inputStream
= httpConnection.getInputStream();
BufferedReader reader
= new BufferedReader(new InputStreamReader(inputStream , "gb2312"));
StringBuilder builder
= new StringBuilder();
String line
= null;
while ((line = reader.readLine()) != null ) {
builder.append(line);
}
inputStream.close();
int start1=builder.indexOf(":");
String str1
=builder.substring(start1+1);
int start2=str1.indexOf("\"");
String str2
=str1.substring(start2+1);
int start3=str2.indexOf("\"");
ip
=str2.substring(0,start3);
return ip;
}
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}

Note that the method of network connection cannot be used in the main thread

public static String getNetIp() {

String ip
= "";
InputStream inputStream
= null;
try {
URL infoUrl
= new URL("http://pv.sohu.com/cityjson?ie=utf-8"< span style="color: #000000;">);
URLConnection connection = infoUrl.openConnection();
HttpURLConnection httpConnection
= (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
inputStream
= httpConnection.getInputStream();
BufferedReader reader
= new BufferedReader(new InputStreamReader(inputStream , "gb2312"));
StringBuilder builder
= new StringBuilder();
String line
= null;
while ((line = reader.readLine()) != null ) {
builder.append(line);
}
inputStream.close();
int start1=builder.indexOf(":");
String str1
=builder.substring(start1+1);
int start2=str1.indexOf("\"");
String str2
=str1.substring(start2+1);
int start3=str2.indexOf("\"");
ip
=str2.substring(0,start3);
return ip;
}
}
catch (IOException e) {
e.printStackTrace();
}
return null;
}

Leave a Comment

Your email address will not be published.