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

分类:Android 5822人阅读 评论(7) 收藏 举报 android string layout null service class

这个方法在摩托罗拉里程碑上测试通过。功能是获取本机的IP和MAC地址。首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下。

[xhtml] view plain copy
  1. <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
  2. <uses-permissionandroid:name="android.permission.INTERNET"></uses-permission>

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

[xhtml] view plain copy
  1. <TextView
  2. android:id="@+id/hello"
  3. android:layout_width="fill_parent"
  4. android:layout_height="wrap_content"
  5. />

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

[java] view plain copy
  1. packageexp.getipmac;
  2. importjava.net.InetAddress;
  3. importjava.net.NetworkInterface;
  4. importjava.net.SocketException;
  5. importjava.util.Enumeration;
  6. importandroid.app.Activity;
  7. importandroid.content.Context;
  8. importandroid.net.wifi.WifiInfo;
  9. importandroid.net.wifi.WifiManager;
  10. importandroid.os.Bundle;
  11. importandroid.util.Log;
  12. importandroid.widget.TextView;
  13. publicclassGetIPMACextendsActivity{
  14. publicstaticStringhostip;//本机IP
  15. publicstaticStringhostmac;//本机MAC
  16. /**Calledwhentheactivityisfirstcreated.*/
  17. @Override
  18. publicvoidonCreate(BundlesavedInstanceState){
  19. super.onCreate(savedInstanceState);
  20. setContentView(R.layout.main);
  21. TextViewtv=(TextView)findViewById(R.id.hello);
  22. hostip=getLocalIpAddress();//获取本机IP
  23. hostmac=getLocalMacAddress();//获取本机MAC
  24. /*显示本机IP和MAC*/
  25. tv.setText("HostIP:"+hostip+"/nHostMAC:"+hostmac);
  26. /*在调试信息中输出本机IP和MAC*/
  27. if(hostip!=null)Log.d("GetIPMAC",hostip);
  28. elseLog.d("GetIPMAC","null");
  29. Log.d("GetIPMAC",hostmac);
  30. }
  31. publicStringgetLocalIpAddress(){
  32. try{
  33. for(Enumeration<NetworkInterface>en=NetworkInterface
  34. .getNetworkInterfaces();en.hasMoreElements();){
  35. NetworkInterfaceintf=en.nextElement();
  36. for(Enumeration<InetAddress>enumIpAddr=intf
  37. .getInetAddresses();enumIpAddr.hasMoreElements();){
  38. InetAddressinetAddress=enumIpAddr.nextElement();
  39. if(!inetAddress.isLoopbackAddress()){
  40. returninetAddress.getHostAddress().toString();
  41. }
  42. }
  43. }
  44. }catch(SocketExceptionex){
  45. Log.e("WifiPreferenceIpAddress",ex.toString());
  46. }
  47. returnnull;
  48. }
  49. publicStringgetLocalMacAddress(){
  50. WifiManagerwifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
  51. WifiInfoinfo=wifi.getConnectionInfo();
  52. returninfo.getMacAddress();
  53. }
  54. }

运行效果:

Android获取本机IP地址(不是localhost)和MAC的方法_第1张图片

分享到:

更多相关文章

  1. Android 导入android源码有错,R.java文件不能自动生成解决方法
  2. Git,SVN使用方法杂记(更新中)
  3. 解决develop.android.com无法访问到最佳方法
  4. Android ActionBar使用方法(二)
  5. Android dex ,xml 文件反编译方法
  6. Android 代码混淆及反编译方法

随机推荐

  1. PHP 排序算法原理及总结
  2. PHP生成唯一ID
  3. PHP使用QueryList轻松实现一个百度网盘资
  4. PHP面向对象中new self( )和 new static(
  5. php启动内置服务器
  6. PHP下载远程文件到指定目录
  7. Centos下PHP5升级PHP7
  8. PHP发送邮件:如何自定义reply-to头部以及
  9. mac切换PHP版本并使当前PHP版本生效
  10. PHP_CodeSniffer安装和使用教程(自动代码