Android擷取本機IP地址(不是localhost)和MAC的方法

來源:互聯網
上載者:User

      這個方法在摩托羅拉裡程碑上測試通過。功能是擷取原生IP和MAC地址。首先建立一個工程,修改AndroidManifest.xml檔案增加使用者權限,如下。

      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><br /><uses-permission android:name="android.permission.INTERNET"></uses-permission>

 

      然後修改/res/layout/main.xml,如下。

      <TextView<br /> android:id ="@+id/hello"<br /> android:layout_width="fill_parent"<br /> android:layout_height="wrap_content"<br /> />

 

      主要代碼如下(GetIPMAC.java):

      package exp.getipmac;<br />import java.net.InetAddress;<br />import java.net.NetworkInterface;<br />import java.net.SocketException;<br />import java.util.Enumeration;<br />import android.app.Activity;<br />import android.content.Context;<br />import android.net.wifi.WifiInfo;<br />import android.net.wifi.WifiManager;<br />import android.os.Bundle;<br />import android.util.Log;<br />import android.widget.TextView;<br />public class GetIPMAC extends Activity {<br />public static String hostip; //本機IP<br />public static String hostmac; //本機MAC</p><p> /** Called when the activity is first created. */<br /> @Override<br /> public void onCreate(Bundle savedInstanceState) {<br /> super.onCreate(savedInstanceState);<br /> setContentView(R.layout.main);<br /> TextView tv= (TextView)findViewById(R.id.hello);</p><p> hostip = getLocalIpAddress(); //擷取本機IP<br /> hostmac = getLocalMacAddress();//擷取本機MAC<br /> /* 顯示本機IP和MAC */<br /> tv.setText("HostIP:" + hostip + "/nHostMAC:" + hostmac);<br /> /* 在調試資訊中輸出本機IP和MAC */<br /> if (hostip != null) Log.d("GetIPMAC", hostip);<br /> else Log.d("GetIPMAC", "null");<br /> Log.d("GetIPMAC", hostmac);<br /> }</p><p> public String getLocalIpAddress() {<br />try {<br />for (Enumeration<NetworkInterface> en = NetworkInterface<br />.getNetworkInterfaces(); en.hasMoreElements();) {<br />NetworkInterface intf = en.nextElement();<br />for (Enumeration<InetAddress> enumIpAddr = intf<br />.getInetAddresses(); enumIpAddr.hasMoreElements();) {<br />InetAddress inetAddress = enumIpAddr.nextElement();<br />if (!inetAddress.isLoopbackAddress()) {<br />return inetAddress.getHostAddress().toString();<br />}<br />}<br />}<br />} catch (SocketException ex) {<br />Log.e("WifiPreference IpAddress", ex.toString());<br />}<br />return null;<br />}</p><p> public String getLocalMacAddress() {<br />WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);<br />WifiInfo info = wifi.getConnectionInfo();<br />return info.getMacAddress();<br />}<br />}

 

      運行效果:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.