用java编写代码获取主机名和IP地址过程中所遇到的问题
材料:windows、eclipse、WLAN网络
java代码
import java.io.IOException;
import java.net.InetAddress;
class IPtoName{
public static void main(String [] args){
InetAddress host;
System.out.println("主机\t\tIP");
try {
host=InetAddress.getLocalHost();
System.out.println(host);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行结果:
在查看本机IP地址:
发现运行结果中IP并不是192.168.1.2而是192.168.56.1。这肯定不是凭空产生的。
查看本机其他网卡信息,发现这是我电脑第一个虚拟机的IP。
禁用这张虚拟机网卡后(如何禁用网卡,去网上查吧)
运行结果:
然而结果还是不对,这是我第二个虚拟网卡的信息,没办法把电脑中的虚拟网卡全禁用后运行结果:
终于正确了!
总结:
InetAddress.getLocalName()的返回值是本地主机的一个InetAddress对象。可理解为默认获取本地主机已开启的第一张网卡的网络信息。