如何使用我的公共IP与HttpListener

时间:2013-07-23 15:25:59

标签: c# .net httplistener

到目前为止我已经得到了这个......

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访问它?

2 个答案:

答案 0 :(得分:6)

设置此项时,您应该使用内部IP,因为这是您正在侦听的实际IP。 为了从外部IP获取流量,您需要将流量从路由器转发到正在侦听其内部IP的计算机。

设置它的一种方法是使用端口转发,从路由器,您可能希望将端口80上的任何流量引导到您的计算机。

更多信息: http://en.wikipedia.org/wiki/Port_forwarding

答案 1 :(得分:1)

正如Jamie所说,您的HTTPListener应该绑定到运行应用程序的网卡上的IP地址。除非您的NIC实际配置了公共IP(例如,不通过路由器),否则您的私人地址就是使用的地址。

检查此问题的一种简单方法是运行IPCONFIG并查看列出的IP地址。