根据用户使用java和demo连接的输入动态选择两个网卡上的IP地址



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

我强烈怀疑它应该使用Socket()方法构造函数,特别是具有带有4个参数的签名的第一个实例它应该允许你指定使用公共套接字(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: %sn", netint.getDisplayName());
    out.printf("Name: %sn", netint.getName());
    Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
    for (InetAddress inetAddress : Collections.list(inetAddresses)) {
        out.printf("InetAddress: %sn", inetAddress);
    }
    out.printf("n");
 }
 }  

上面的代码吐出了IP地址,但它也返回了一堆"无用"的信息,比如我不想要的以太网地址,如何隔离我感兴趣的IP地址?

还有,怎样才能有效地显示我的IP地址?也许连接到whois.com

上面的代码吐出了IP地址,但它也返回了一堆"无用"的信息,比如我不想要的以太网地址,如何隔离我感兴趣的IP地址?

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

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

相关内容

  • 没有找到相关文章

最新更新