Ethernet на windows 7? - PullRequest
       3

Ethernet на windows 7?

0 голосов
/ 04 февраля 2019

Как я могу узнать, какой интерфейс разрешит подключение UPD?Я получаю список всех сетевых интерфейсов, таких как:

Enumeration<NetworkInterface> networkInterfaceEnumeration = NetworkInterface.getNetworkInterfaces();

$ ipconfig
Windows IP Configuration

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . : myworld.com
   IPv4 Address. . . . . . . . . . . : 10.219.1.157
   Subnet Mask . . . . . . . . . . . : 255.255.254.0
   Default Gateway . . . . . . . . . : 10.219.0.1

Tunnel adapter isatap.myworld.com:
   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : myworld.com

1 Ответ

0 голосов
/ 04 февраля 2019

Решение, которое я нашел, состоит в том, чтобы выполнить итерацию по всем интерфейсам и протестировать включенное соединение: Пример рабочего кода:

public static DatagramChannel openDatagramChannelForAnyWorkingInterface(int port, String ip) throws IOException {

    DatagramChannel channel;
    try {
        channel = DatagramChannel.open(StandardProtocolFamily.INET);
        channel.configureBlocking(true);
        channel.socket().setReuseAddress(true);
        channel.bind(new InetSocketAddress(port));
        Enumeration<NetworkInterface> networkInterfaceEnumeration = NetworkInterface.getNetworkInterfaces();
        for (NetworkInterface np : Collections.list(networkInterfaceEnumeration)) {
            try {
                channel.join(InetAddress.getByName(ip), NetworkInterface.getByName(np.getName()));
                log.info("Data joining channel ip [{}], port [{}] interface [{}]", ip, port, np.getName());
                break;
            } catch (Exception ignore) {
            }
        }
    } catch (Exception e) {
        log.error("Exception while subscribing to market data: ", e);
        throw e;
    }
    return channel;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...