在Java中获取客户端的每个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

我在获取Java中的每个IP地址时遇到问题。当我打开GUI以选择要使用的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;
}
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
,从外观上看,它甚至还没有发布。