欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 获取IP地址的实现方法

程序员文章站 2024-03-03 18:59:58
android 获取ip地址 最近做项目,有一个需求是android设备获取当前ip的功能,经过一番查询资料解决了,记录下实现方法。 1.使用wifi 首先设置用户权...

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;

  }

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!