在Java中使用waifupnp进行端口转发时,如何选择wan接口?

时间:2019-07-01 18:48:39

标签: java sockets nat upnp wan

我想在启用了upnp的路由器上转发端口,我正在使用Java中的waifUPnP库。 它转发的端口,但它选择的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接口的代码中上述参数方法中要传递什么。

0 个答案:

没有答案