Android獲取本機IP地址和MAC的方法

修改AndroidManifest.xml文件增長用戶權限,以下。 java

      
view plaincopy to clipboardprint?
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>  
<uses-permission android:name="android.permission.INTERNET"></uses-permission>  android


view plaincopy to clipboardprint?   
package exp.getipmac;     
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.widget.TextView;     
public class GetIPMAC extends Activity {     
    public static String hostip;             //本機IP     
    public static String hostmac;            //本機MAC     
         
    /** Called when the activity is first created. */     
    @Override     
    public void onCreate(Bundle savedInstanceState) {     
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);     
        TextView tv= (TextView)findViewById(R.id.hello);     
             
        hostip = getLocalIpAddress();  //獲取本機IP     
        hostmac = getLocalMacAddress();//獲取本機MAC     
        /* 顯示本機IP和MAC */     
        tv.setText("HostIP:" + hostip + "\nHostMAC:" + hostmac);     
        /* 在調試信息中輸出本機IP和MAC */     
        if (hostip != null) Log.d("GetIPMAC", hostip);     
        else Log.d("GetIPMAC", "null");     
        Log.d("GetIPMAC", hostmac);     
    }     
         
    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;     
    }     
         
    public String getLocalMacAddress() {     
        WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);     
        WifiInfo info = wifi.getConnectionInfo();     
        return info.getMacAddress();     
    }     
}
app

相關文章
相關標籤/搜索