Android獲取手機IP地址 WIFI MAC地址
阿新 • • 發佈:2019-01-01
- 獲取手機IP地址
第一步:新增許可權
<uses-permission android:name="android.permission.INTERNET"/>
第二步:上程式碼
2333
private String getIP() {
String IP = "";
StringBuilder IPStringBuilder = new StringBuilder();
try {
Enumeration<NetworkInterface> networkInterfaceEnumeration = NetworkInterface.getNetworkInterfaces ();
while (networkInterfaceEnumeration.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaceEnumeration.nextElement();
Enumeration<InetAddress> inetAddressEnumeration = networkInterface.getInetAddresses();
while (inetAddressEnumeration.hasMoreElements ()) {
InetAddress inetAddress = inetAddressEnumeration.nextElement();
if (!inetAddress.isLoopbackAddress()
&& !inetAddress.isLinkLocalAddress()
&& inetAddress.isSiteLocalAddress()) {
IPStringBuilder.append (inetAddress.getHostAddress().toString() + "\n");
}
}
}
} catch (SocketException ex) {
}
IP = IPStringBuilder.toString();
if (IP.indexOf("\n1") > 0) {
IP = IP.substring(0, IP.indexOf("\n1"));
}
//返回一個XXX.XXX.xxx.xxx格式的IP地址
return IP;
}
- 獲取MAC地址
獲取MAC地址。是通過WIFIManager獲取的。
WifiManager WiFi = (WifiManager)getSystemService(Context.WIFI_SERVICE);
WifiInfo info = WiFi.getConnectionInfo();
//通過wifiinfo獲取獲取到MAC地址了
String ssid = (info .getSSID() == "<unknown ssid>" ? "無連線WIFI" : info .getSSID());
if (!CommonUtils.isEmpty(ssid)) {
ToastShow.showToast("正在連線:" + ssid);
String data=
"MAC地址 = "+info .getMacAddress()+"\n"
+"訊號強度 = "+info .getRssi()+"\n"
+"正在連線 = "+ ssid +"\n"
+"getBSSID = "+info .getBSSID()+"\n";
其中getSSID得到的是連線到WIFI的名字。getBSSID得到的是十六進位制字串?有知道的同志留言評論的告訴我一下唄。