1
我在使用Java獲取每個IP地址時遇到問題。當我打開GUI來選擇要使用的IP,我稱之爲:以Java獲取客戶端的每個IP地址的問題
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;
}
這種方法獲取所有的IPv4地址的該客戶端。我知道IPv6地址包含冒號,因此我不會將冒號添加到列表中。
然後,按下按鈕將更改IP地址。但是,我注意到當機器只有一個IPv4地址時(你得到兩個像Hamachi這樣的服務),它將返回一個空的異常。如果只有一個地址,我將如何獲取客戶端的每個IP地址而不返回空異常?
它不 '返回空例外'。 *你的代碼* **拋出一個'NullPointerException',在你沒有透露的一些代碼行中,並且它的外觀還沒有發佈。 – EJP