到目前为止我已经得到了这个......
public static HttpListener listener = new HttpListener();
public static string startUpPath = Application.StartupPath;
public WebServer()
{
listener.Start();
listener.Prefixes.Add("http://(here I want my public ip)/");
Thread t = new Thread(new ThreadStart(clientListener));
t.Start();
}
但是当我初始化课程时,它会说"The specified Network format is not valid"
翻译可能并不完美,因为我的视觉工作室语言是西班牙语。 我的ip看起来像95。^^。^^^。^^我想这可能是问题,因为它在我使用本地ip时有效。
//被修改
确切的例外是:
“El formato del nombre de red especificado noesválido”
哪个是"The specified network name is not valid".
如果我添加前缀
"http:// + :80/"
它仍在继续,但我如何通过我的公共IP访问它?
答案 0 :(得分:6)
设置此项时,您应该使用内部IP,因为这是您正在侦听的实际IP。 为了从外部IP获取流量,您需要将流量从路由器转发到正在侦听其内部IP的计算机。
设置它的一种方法是使用端口转发,从路由器,您可能希望将端口80上的任何流量引导到您的计算机。
答案 1 :(得分:1)
正如Jamie所说,您的HTTPListener应该绑定到运行应用程序的网卡上的IP地址。除非您的NIC实际配置了公共IP(例如,不通过路由器),否则您的私人地址就是使用的地址。
检查此问题的一种简单方法是运行IPCONFIG并查看列出的IP地址。