根据用户输入java和demo连接从两个NIC动态选择IP地址

时间:2014-07-04 04:03:59

标签: java networking ip user-input nic

我有以下示例代码。我想要实现的是能够从两个不同的选择中动态选择要连接的IP地址,我希望能够根据用户输入选择这个,但我不知道如何实现这一点。

我强烈怀疑它应该使用Socket()方法构造函数,特别是具有signature with 4 arguments的第一个实例 这应该允许你指定使用公共Socket(InetAddress地址,int端口,InetAddress localAddr,int LocalPort)抛出IOException方法,可以使用第三个参数来指定要使用的IP地址。

我也听说过关于bind()方法的好消息

 import java.io.*;
 import java.net.*;
 import java.util.*;
 import static java.lang.System.out;

 public class ListNets {

public static void main(String args[]) throws SocketException {
    Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
    for (NetworkInterface netint : Collections.list(nets))
        displayInterfaceInformation(netint);
}

static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
    out.printf("Display name: %s\n", netint.getDisplayName());
    out.printf("Name: %s\n", netint.getName());
    Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
    for (InetAddress inetAddress : Collections.list(inetAddresses)) {
        out.printf("InetAddress: %s\n", inetAddress);
    }
    out.printf("\n");
 }
 }  

该代码顶部吐出IP地址,但它也返回一堆“无用”信息,例如我不想要的以太网地址,如何隔离我感兴趣的IP地址? / p>

另外,什么是展示我的IP地址的有效方法?也许连接到whois.com

1 个答案:

答案 0 :(得分:0)

  

该代码顶部吐出IP地址,但它也返回了一堆&#34;无用的&#34;信息,例如我不想要的以太网地址,如何隔离我感兴趣的IP地址?

简单。除了 IP地址外,不要打印任何。删除打印其他内容的代码。

至于您的强烈怀疑,您已经在以前的两个问题中告知您应该使用四参数Socket构造函数。