# 怎样获取本机的IP地址

#### 问题现象

请问设备连接Wi-Fi，或者在蜂窝网下怎样获取本机的IP？

#### 背景知识

*   @ohos.wifiManager (WLAN)模块主要提供WLAN基础功能（无线接入、无线加密、无线漫游等）、P2P（peer-to-peer）服务的基础功能和WLAN消息通知的相应服务，让应用可以通过WLAN和其他设备互联互通。
*   @ohos.net.connection模块提供管理网络一些基础能力，包括获取默认激活的数据网络、获取所有激活数据网络列表、开启关闭飞行模式、获取网络能力信息等功能。
*   connection.getConnectionPropertiesSync获取netHandle对应的网络的连接信息，返回值ConnectionProperties的linkAddresses链路信息包含address链路地址。

#### 解决方案

*   场景一：设备连接Wi-Fi后，如何获取当前设备的IP地址？
    
    使用@ohos.wifiManager模块getIpInfo、getLinkedInfo接口获取当前设备的IP地址，其中ipAddress值为number类型，需要转换为IP常用格式，具体请参考IP格式转换。
    
*   场景二：设备连接蜂窝网络后，如何获取当前设备的IP地址？
    
    使用@ohos.net.connection模块的getconnectionproperties接口获取ConnectionProperties信息，linkAddresses包含链路信息，dnses网络地址包含的IP地址。
    
    需要权限ohos.permission.GET\_NETWORK\_INFO。
    

#### 常见FAQ

Q：connection.getConnectionProperties方法在5.1.5.150下为何无法获取到IPv6的IP地址？

A：目前6.0版本支持fe80，connection.getconnectionproperties可以正常获取IPv6地址。