package com.doumee.keyCabinet.http;
|
|
/**
|
* Created by MSI on 2018/5/22.
|
*/
|
import android.content.Context;
|
import android.net.wifi.WifiInfo;
|
import android.net.wifi.WifiManager;
|
|
import java.net.InetAddress;
|
import java.net.NetworkInterface;
|
import java.net.SocketException;
|
import java.util.Enumeration;
|
|
/**
|
* =======================================================
|
* 版权:Copyright LiYing 2015-2016. All rights reserved.
|
* 作者:liying - liruoer2008@yeah.net
|
* 日期:2016/12/19 19:43
|
* 版本:1.0
|
* 描述:IP地址工具类
|
* 备注:
|
* =======================================================
|
*/
|
public class IPUtils {
|
|
/**
|
* 获取本机IPv4地址
|
*
|
* @param context
|
* @return 本机IPv4地址;null:无网络连接
|
*/
|
public static String getIpAddress(Context context) {
|
try {
|
// 获取WiFi服务
|
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
|
// 判断WiFi是否开启
|
if (wifiManager.isWifiEnabled()) {
|
// 已经开启了WiFi
|
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
int ipAddress = wifiInfo.getIpAddress();
|
String ip = intToIp(ipAddress);
|
return ip;
|
} else {
|
// 未开启WiFi
|
return getIpAddress();
|
}
|
}catch (Exception e){
|
return "";
|
}
|
}
|
|
private static String intToIp(int ipAddress) {
|
return (ipAddress & 0xFF) + "." +
|
((ipAddress >> 8) & 0xFF) + "." +
|
((ipAddress >> 16) & 0xFF) + "." +
|
(ipAddress >> 24 & 0xFF);
|
}
|
|
/**
|
* 蜂窝移动数据已开启
|
* 获取本机IPv4地址
|
*
|
* @return 本机IPv4地址;null:无网络连接
|
*/
|
private static String getIpAddress() {
|
try {
|
NetworkInterface networkInterface;
|
InetAddress inetAddress;
|
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
|
networkInterface = en.nextElement();
|
for (Enumeration<InetAddress> enumIpAddr = networkInterface.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
|
inetAddress = enumIpAddr.nextElement();
|
if (!inetAddress.isLoopbackAddress() && !inetAddress.isLinkLocalAddress()) {
|
return inetAddress.getHostAddress();
|
}
|
}
|
}
|
return null;
|
} catch (SocketException ex) {
|
ex.printStackTrace();
|
return null;
|
}
|
}
|
}
|