0

我想我的问题对于这里的人来说很容易回答?问题是当我执行以下代码时:

InetAddress addr;
addr=InetAddress.getByName("192.168.1.1");
Toast.makeText(this,"InetAddress Value: "+addr.toString(),Toast.LENGTH_LONG).show();

addr价值回报是/192.168.1.1 我想知道我做错了什么?提前致谢!!!

4

1 回答 1

2

从这里回答。

如果您只想要 IP,请使用主机地址:

String address = InetAddress.getByName("stackoverflow.com").getHostAddress();

如果您只想要主机名,请使用

String hostname = InetAddress.getByName("stackoverflow.com").getHostName();

编辑

您看到的斜线可能是当您尝试打印返回的 InetAddress 时对返回的 InetAddress 执行隐式 toString() 时,它会打印由斜线分隔的主机名和地址(例如 stackoverflow.com/64.34.119.12)。你可以使用

String address = InetAddress.getByName("stackoverflow.com").toString().split("/")[1];
String hostname = InetAddress.getByName("stackoverflow.com").toString().split("/")[0];

但是这里根本没有理由去 String 中介。InetAddress 使这两个字段在本质上是分开的。

于 2013-09-18T02:11:29.753 回答