在Java中获取客户端的每个IP地址的问题
我在获取Java中的每个IP地址时遇到问题。当我打开GUI以选择要使用的IP时,我调用:在Java中获取客户端的每个IP地址的问题,java,Java,我在获取Java中的每个IP地址时遇到问题。当我打开GUI以选择要使用的IP时,我调用: private List<String> getIP() { List<String> outputList = new ArrayList<String>(); try { InetAddress localIP = InetAddress.getLocalHost(); InetAddress[] everyIPAddr
private List<String> getIP() {
List<String> outputList = new ArrayList<String>();
try {
InetAddress localIP = InetAddress.getLocalHost();
InetAddress[] everyIPAddress = InetAddress.getAllByName(localIP
.getCanonicalHostName());
if (everyIPAddress != null && everyIPAddress.length > 1) {
for (int i = 0; i < everyIPAddress.length; i++) {
if (!everyIPAddress[i].toString().contains(":")) {
outputList.add(everyIPAddress[i].toString());
}
}
}
} catch (UnknownHostException e) {
System.out.println("Error finding IP Address");
}
return outputList;
}
private List getIP(){
List outputList=new ArrayList();
试一试{
InetAddress localIP=InetAddress.getLocalHost();
InetAddress[]everyIPAddress=InetAddress.getAllByName(localIP
.getCanonicalHostName());
if(everyIPAddress!=null&&everyIPAddress.length>1){
for(int i=0;i
此方法获取客户端拥有的所有IPv4地址。我知道IPv6地址包含冒号,所以我不会在列表中添加任何带有冒号的地址
然后,按下按钮更改IP地址。但是,我注意到,当机器只有一个IPv4地址时(您可以从像Hamachi这样的服务中获得两个),它将返回null异常。如果只有一个地址,如何获取客户端的每个IP地址而不返回null异常
if (everyIPAddress != null && everyIPAddress.length > 1) {
应该是
if (everyIPAddress != null && everyIPAddress.length >= 1) {
或
应该是
if (everyIPAddress != null && everyIPAddress.length >= 1) {
或
它不会“返回空异常”。您的代码在未公开的代码行抛出一个
NullPointerException
,从外观上看,它甚至没有发布。它不会“返回null异常”。您的代码在未公开的代码行抛出一个NullPointerException
,从外观上看,它甚至还没有发布。