我有以下示例代码。我想要实现的是能够动态地选择哪个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
构造函数。