1. 程式人生 > >Android獲取手機IP地址 WIFI MAC地址

Android獲取手機IP地址 WIFI MAC地址

  1. 獲取手機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; }
  1. 獲取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得到的是十六進位制字串?有知道的同志留言評論的告訴我一下唄。