我想我的问题很容易回答这里的人吗?问题在于,当我执行以下代码时:
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
我想知道我做错了什么?
在此先感谢!!!
答案 0 :(得分:2)
来自here的答案。
如果您只想要IP,请使用主机地址:
String address = InetAddress.getByName("stackoverflow.com").getHostAddress();
如果您只想要主机名,请使用
String hostname = InetAddress.getByName("stackoverflow.com").getHostName();
修改
您看到的斜杠可能是在您尝试将其打印出来时对返回的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本质上保持两个字段分开。