使用httpListener创建自定义网站,并将URL作为我的IP地址

时间:2012-02-25 16:53:54

标签: c# asp.net httplistener system.net

我想创建一个网址,其网址为 IP地址 [例如:192.X.X.X]

该网站会向访问我网址的任何用户回复“ HELLO THERE ”消息。

我使用以下代码来执行此操作![它只是一个没有线程的基本代码]

class listenToHTTP
{
    HttpListener _listner;
    public void start()
    {
        _listner = new HttpListener();
        _listner.Prefixes.Add("http://localhost/");//default port 80
        _listner.Start();
    }
    public void process()
    {
         while (true)
         {
            HttpListenerContext context = _listner.GetContext();
            byte[] output = Encoding.ASCII.GetBytes("HELLO THERE");
            context.Response.ContentEncoding = Encoding.ASCII;
            context.Response.ContentLength64 = output.Length;
            context.Response.OutputStream.Write(output, 0, output.Length);

          }
     }
}

问题是我不知道任何人都可以访问的 IP地址

当我使用 http:// localhost / 作为网址时,它会完美地显示响应“HELLO THERE”。

但是其他人使用的是什么 IP地址,以便他们可以访问我的简单网站。

我在浏览器中尝试了我的IP地址,但它无法正常工作

3 个答案:

答案 0 :(得分:4)

这样做有两点需要注意;

  • 如果您收听本地主机地址,则只有localhost可以连接到您的HttpListener。您需要添加http://192.X.X.X/的前缀(当然192.X.X.X是您的本地IP)并听取它。这可能(取决于您的操作系统)要求您以管理员身份运行,至少如果您想在端口上执行此操作< 1024.您可以通过从本地计算机而不是本地主机地址连接到IP#来测试它是否有效。

  • 如果您运行的是Windows,防火墙可能会受阻。如果它似乎(即您可以从本地计算机连接到您的IP#但没有其他任何东西可以连接),您将需要手动打开端口。如何在Google上执行此操作有很多指南。

答案 1 :(得分:1)

@Joachim回复已经足够好了。我想补充一点......

  1. 您需要公开公开上述IP地址,以便其他人可以访问该网址。
  2. 如果仅将URL公开给您的域(例如,在Intranet的情况下),请与您的系统管理员联系以配置Intranet上的IP地址。
  3. Localhost设置辅助功能仅限于您的计算机。
  4. 确保检查防火墙约束以获取URL辅助功能以实现Point 1或2
  5. 有关详细信息,请查看 HTTPListener

    的参考
    1. HTTPListener
    2. HTTPListener
    3. HTTPListener

答案 2 :(得分:0)

问题在于我指的是private network local network地址private network,而 之外的任何人都无法访问ip-address 10.0.0.0 to 10.255.255.255 172.16.0.0 to 172.31.255.255 192.168.0.0 to 192.168.255.255 }} ..

这些是专用网络中使用的{{1}}范围,因此具有此地址的系统不能是服务器或托管网站..

{{1}}

您应该使用公共地址..