Как выбрать интерфейс WAN при переадресации портов с помощью waifupnp в Java? - PullRequest
0 голосов
/ 01 июля 2019

Я хочу переадресовать порт на маршрутизаторе с поддержкой upnp. Я использую библиотеку waifUPnP в java. Это порт перенаправления, но выбираемый интерфейс WAN - это ppp0.1, что не то, что я хочу. Как я могу выбрать ppp1.1. Я не вижу другого способа выбрать интерфейс WAN.

Я создаю приложение, которое требует переадресации портов.

UPnP.openPortTCP(PORT);

 public boolean openPort(int port, boolean udp) {
    if (port < 0 || port > 65535) {
        throw new IllegalArgumentException("Invalid port");
    }
    Map<String, String> params = new HashMap<String, String>();
    params.put("NewRemoteHost", "");
    params.put("NewProtocol", udp ? "UDP" : "TCP");
    params.put("NewInternalClient", iface.getHostAddress());
    params.put("NewExternalPort", "" + port);
    params.put("NewInternalPort", "" + port);
    params.put("NewEnabled", "1");
    params.put("NewPortMappingDescription", "WaifUPnP");
    params.put("NewLeaseDuration", "0");

    try {
        Map<String, String> r = command("AddPortMapping", params);
        return r.get("errorCode") == null;
    } catch (Exception ex) {
        return false;
    }
}

Он пересылает порт, но выбирает верхний интерфейс WAN, у меня есть 3 интерфейса WAN, работает тот, который является ppp1.1, который является третьим интерфейсом WAN. Есть ли способ, которым я могу добавить параметр интерфейса WAN, я не знаю, что передать в методе параметра выше в коде, который определяет интерфейс WAN.

...