Android 擷取IP地址的實現方法_Android

來源:互聯網
上載者:User

Android 擷取IP地址

最近做項目,有一個需求是Android裝置擷取當前IP的功能,經過一番查詢資料解決了,記錄下實現方法。

1.使用WIFI

首先設定使用者權限

<uses-permission Android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>

其次,代碼如下

public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.main);        //擷取wifi服務    WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);    //判斷wifi是否開啟    if (!wifiManager.isWifiEnabled()) {    wifiManager.setWifiEnabled(true);     }    WifiInfo wifiInfo = wifiManager.getConnectionInfo();       int ipAddress = wifiInfo.getIpAddress();     String ip = intToIp(ipAddress);     EditText et = (EditText)findViewById(R.id.EditText01);    et.setText(ip);  }    private String intToIp(int i) {            return (i & 0xFF ) + "." +       ((i >> 8 ) & 0xFF) + "." +       ((i >> 16 ) & 0xFF) + "." +       ( i >> 24 & 0xFF) ;   } 

2.使用GPRS

首先,設定使用者上網許可權

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

其次,代碼如下

public String getLocalIpAddress()  {    try    {      for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)      {        NetworkInterface intf = en.nextElement();        for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)        {          InetAddress inetAddress = enumIpAddr.nextElement();          if (!inetAddress.isLoopbackAddress())          {            return inetAddress.getHostAddress().toString();          }        }      }    }    catch (SocketException ex)    {      Log.e("WifiPreference IpAddress", ex.toString());    }    return null;  }

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.