【发布时间】:2016-08-07 06:58:02
【问题描述】:
我正在尝试使用 Nancy Host 以 IP https://0.0.0.0:9000 启动主机,但我收到 System - The request is not supported 异常。下面是我的代码。
string strHostProtocol = "https";
string strHostIP = "0.0.0.0";
string strHostPort = "9000";
var url = strHostProtocol + "://" + strHostIP + ":" + strHostPort;
this.host = new NancyHost(new Uri(url));
this.host.Start();
它将允许我启动其他 IP 地址,例如 127.0.0.1:9000、192.168.100.10:9000 等,但不能启动 0.0.0.0:9000。我读过这是一个有效的IP。但我的问题是为什么不允许开始?此 IP 是否保留用于任何目的?
更新
这里的唯一目的是,我试图通过提供的公共 IP 访问内部 IP。但是Nancy即使以端口启动内部IP,当通过公共IP提供请求时,它也不会识别。不确定这是否可以实现。
【问题讨论】:
-
根据 TCP/IP 设计,0.0.0.0 表示本地机器上的“所有”或“每个”ipv4 地址,因此 0.0.0.0 是某种元地址不可路由。如果您将 0.0.0.0 设置为路由目标,则路由明智,这意味着它是每个其他网络地址的路由项。
-
@ʞaʎess.. 我正在尝试这个,因为我已经将系统的 IP 作为公共 IP,并且我已经使用 9000 端口启动了本地 IP。我可以使用公共 IP 远程登录这个端口,但是我无法通过互联网浏览相同的内容。我听说以
0.0.0.0开头会很有帮助.. -
您的意思是要将 nancy 绑定到所有接口,例如分配给本地机器的每个可能的 IP 地址?如果是这样,您可以尝试将“0.0.0.0”替换为通配符“+”。
-
@ʞaʎess 哦,好吧..让我试试..
-
如果您使用某种 NAT,您的主机将接收内部 IP 上的请求,它甚至不知道原始请求被发送到公共 IP。如果不使用 NAT,windows 可能会阻止请求,至少 ARP 不起作用。也许你可以用wireshark检查是否收到了什么?
标签: c# ip ip-address nancy