在Android上获取动态本地IP地址

时间:2015-02-15 21:36:00

标签: android wifi ip-address

在Android应用程序中,我想获取当我键入" ipconfig"时出现的动态本地IP地址。在cmd。使用这段代码我在stackoverflow上找到了这里,它返回一个ip地址,但它与ipconfig中的地址不同。这是为什么?如何获取使用ipconfig显示的确切IP地址?

public String getLocalIpAddress() {
       WifiManager wifiManager = (WifiManager)      
       getSystemService(WIFI_SERVICE);
       WifiInfo wifiInfo = wifiManager.getConnectionInfo();
       int ip = wifiInfo.getIpAddress();

       String ipString = String.format(
       "%d.%d.%d.%d",
       (ip & 0xff),
       (ip >> 8 & 0xff),
       (ip >> 16 & 0xff),
       (ip >> 24 & 0xff));

       return ipString;
}

1 个答案:

答案 0 :(得分:0)

好的基于上面的命令,我想我知道这个问题。首先是一些基础知识。连接到网络的每台设备都会有不同的ip address

An Internet Protocol address (IP address) is a numerical label assigned to each device (e.g., computer, printer) participating in a computer network that uses the Internet Protocol for communication

如果您在家中有2部手机和1台笔记本电脑并且所有设备都连接到家庭wifi,那么您的每部手机和笔记本电脑都将拥有3个独特的不同IP地址。

在终端中运行ipconfig时,它会返回系统(或笔记本电脑)的IP地址。但是,当您运行给定here的任何代码时,它会返回您的移动设备的IP地址。这显然与您在终端上看到的不同。