如何在Java中确定因特网网络接口
2022-09-03 18:04:53
						如何确定使用Java连接到互联网的网络接口?例如,我运行
InetAddress.getLocalHost().getHostAddress();
在Eclipse中,这完全返回了我的意图,192.168.1.105。但是,如果我将其打包到jar文件中并运行该程序,则代码返回169.254.234.50。对此进行调查后,我发现这是我计算机上 VMware 虚拟以太网适配器接口的 IP 地址。
有没有办法确定连接到互联网的接口,同时保持我的代码的可移植性?
接口比较
接口 [网络4]
display name  : Intel(R) Centrino(R) Ultimate-N 6300 AGN
MTU           : 1500
loopback      : false
point to point: false
up            : true
virtual       : false
multicast     : true
HW address    : 00 24 D7 2C 5F 70 
INET address (IPv4): 192.168.1.105
  host name           : MyComputer
  canonical host name : MyComputer
  loopback            : false
  site local          : true
  any local           : false
  link local          : false
  multicast           : false
  reachable           : true
接口 [eth5]
display name  : VMware Virtual Ethernet Adapter for VMnet1
MTU           : 1500
loopback      : false
point to point: false
up            : true
virtual       : false
multicast     : true
HW address    : 00 50 56 C0 00 01 
INET address (IPv4): 169.254.234.50
  host name           : MyComputer
  canonical host name : MyComputer
  loopback            : false
  site local          : false
  any local           : false
  link local          : true
  multicast           : false
  reachable           : true
还有第三个VMware界面,站点为local=true和link local=false,因此这些字段也没有任何帮助。
 
					 
				 
				    		 
				    		 
				    		