准备
添加如下权限:
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.READ_PHONE_STATE
获取本机内网ip
public static String getHostIP() {
String hostIp = null;
try {
Enumeration nis = NetworkInterface.getNetworkInterfaces();
InetAddress ia = null;
while (nis.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) nis.nextElement();
Enumeration ias = ni.getInetAddresses();
while (ias.hasMoreElements()) {
ia = ias.nextElement();
if (ia instanceof Inet6Address) {
continue;// skip ipv6
}
String ip = ia.getHostAddress();
if (!"127.0.0.1".equals(ip)) {
hostIp = ia.getHostAddress();
break;
}
}
}
} catch (SocketException e) {
Log.i("yao", "SocketException");
e.printStackTrace();
}
return hostIp;
}
获取外网ip
public static IPBean ip=new IPBean();
public String getMobileIP() {
final String[] result = new String[1];
new Thread() {
@Override
public void run() {
HttpURLConnection urlConnection = null;
try {
URL url = new URL("http://ip.chinaz.com/getip.aspx";);
urlConnection = (HttpURLConnection)url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
result[0] = readInStream(in);
if (!result[0].isEmpty()){
ip=new Gson().fromJson(result[0],IPBean.class);
}
LogUtil.e("netIP",Constants.netIP);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
urlConnection.disconnect();
}
}
}.start();
return ip.getIp();
}
private String readInStream(InputStream in) {
Scanner scanner = new Scanner(in).useDelimiter("\\A");
return scanner.hasNext() ? scanner.next() : "";
}
public static class IPBean {
private String ip;
private String address;
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}