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

Ani*_*dha 2 c# asp.net system.net httplistener

我想创建一个以 URL 作为我的IP 地址的网站[例如:192.XXX]

该网站将向访问我的 URL 的任何用户响应一条“ 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);

          }
     }
}
Run Code Online (Sandbox Code Playgroud)

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

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

但是其他人会使用什么IP 地址才能访问我的简单网站。

我在浏览器中尝试了我的 IP 地址,但不起作用。

Joa*_*son 5

这样做时需要注意两件事;

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

  • 如果您运行的是 Windows,防火墙可能会妨碍您。如果看起来如此(即您可以从本地计算机连接到您的 IP#,但其他任何东西都无法连接),您将需要手动打开端口。Google 上有很多如何执行此操作的指南。

  • @Anirudha另一个提示,您可以添加“http://+:80”前缀来一次性监听分配给您计算机的所有地址的80端口。 (2认同)