日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android程序获取WIFI的IP地址和MAC地址

發布時間:2023/12/10 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android程序获取WIFI的IP地址和MAC地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://my.oschina.net/chenj/blog/68680

?

近日在鼓搗這玩意,拿出來大家分享一下,代碼比較簡單,如果有不懂的再問

<Button android:id="@+id/btn"android:text="獲取IP"android:layout_width="fill_parent"android:layout_height="wrap_content"android:onClick="onclick"/><EditText android:id="@+id/ip_txt"android:layout_width="fill_parent"android:layout_height="wrap_content"/><EditText android:id="@+id/mac_txt"android:layout_width="fill_parent"android:layout_height="wrap_content"/>

//這里是權限,添加為AndroidManifest.xml的<manifest>的子節點

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

//接下來就是正文(注意IPV4與IPV6的區別,見注釋)

package com.wifi;import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration;import android.app.Activity; import android.content.Context; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends Activity {public static String IP; //本機IPpublic static String MAC; //本機MAC Button btn=null;EditText ip_txt=null;EditText mac_txt=null;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);btn=(Button)findViewById(R.id.btn);ip_txt=(EditText)findViewById(R.id.ip_txt);mac_txt=(EditText)findViewById(R.id.mac_txt);}public void onclick(View v){switch (v.getId()) {case R.id.btn:IP = getLocalIpAddress(); //獲取本機IPMAC = getLocalMacAddress();//獲取本機MAC ip_txt.setText(IP);mac_txt.setText(MAC);break;}}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()&&(inetAddress instanceof Inet4Address)) { // 這是只獲取IPV4的,如果要獲取IPV6的,改成instanceof Inet6Addressreturn inetAddress.getHostAddress().toString();}}}} catch (SocketException ex) {Log.e("WifiPreference IpAddress", ex.toString());}return null;}public String getLocalMacAddress() {WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);WifiInfo info = wifi.getConnectionInfo();return info.getMacAddress();} }

另一種方法:

WifiManager wifi_service = (WifiManager)getSystemService(WIFI_SERVICE);//檢查wifi是否開啟 if(!wifimanage.isWifiEnabled()) { wifimanage.setWifiEnabled(true); } WifiInfo wifiinfo= wifimanage.getConnectionInfo(); String ip=intToIp(wifiinfo.getIpAddress()); //將獲取的int轉為真正的ip地址,參考的網上的,修改了下 private String intToIp(int i) {return (i & 0xFF)+ "." + ((i >> 8 ) & 0xFF)? + "." + ((i >> 16 ) & 0xFF) +"."+((i >> 24 ) & 0xFF ); }

關于WifiManager的用法:http://blog.csdn.net/zd_1471278687/article/details/12158367

轉載于:https://www.cnblogs.com/qrlozte/p/3670832.html

總結

以上是生活随笔為你收集整理的android程序获取WIFI的IP地址和MAC地址的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。