C# 使用httpListener创建URL作为我的IP地址的自定义网站

C# 使用httpListener创建URL作为我的IP地址的自定义网站,c#,asp.net,httplistener,system.net,C#,Asp.net,Httplistener,System.net,我想创建一个网址为我的IP地址的网站 该网站会向任何访问我的URL的用户发送一条“你好”的信息 我使用下面的代码来做这件事![这只是一个没有线程的基本代码] class listenToHTTP { HttpListener _listner; public void start() { _listner = new HttpListener(); _listner.Prefixes.Add("http://localhost/");//d

我想创建一个网址为我的IP地址的网站

该网站会向任何访问我的URL的用户发送一条“你好”的信息

我使用下面的代码来做这件事![这只是一个没有线程的基本代码]

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/作为URL

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


我在浏览器中尝试了我的IP地址,但它不起作用。执行此操作时需要注意两件事

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

  • 如果您正在运行Windows,防火墙可能会妨碍您。如果是这样(即您可以从本地计算机连接到您的IP,但其他任何设备都无法连接),则需要手动打开端口。在谷歌上有很多关于如何做到这一点的指南


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

    • 您需要公开上述IP地址,以使其他人可以访问URL
    • 如果仅向您的域公开URL(即,如果是Intranet),请与系统管理员联系,在Intranet上配置IP地址
    • Localhost设置可访问性仅限于您的计算机
    • 确保检查防火墙约束以实现第1点或第2点的URL可访问性
    • 有关更多信息,请查看HTTPListener的参考资料


    • 问题是我指的是一个
      专用网络
      地址,该地址是
      本地
      网络
      ,并且在
      专用网络
      之外的任何人都无法访问

      这些是专用网络中使用的
      ip地址范围,因此具有此地址的系统不能作为服务器或网站主机

      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
      

      你应该使用公共广播。

      @Anirudha你能展示一下你的代码吗?您需要添加两个单独的前缀,一个用于localhost(如果您想听的话),另一个用于182.X.X.X。您只能添加实际分配给您的计算机的地址,例如,如果您的计算机有192.x.x.x地址,并且位于ip为182.x.x.x的端口转发代理之后,您不能将182.x.x地址添加为要侦听的前缀。@Anirudha另一个提示,您可以添加前缀
      http://+:80
      ,一次侦听分配给计算机的所有地址的端口80。实际上,我使用了hp://182.X.X.X/localhost/,而不是hp://localhost/,但仍然没有结果@Anirudha您应该只使用
      http://182.x.x.x:80
      ,没有本地主机。或者,使用http://+:80
      自动使用机器拥有的任何IP地址。我有一家私人公司的brodband..是代理服务器的IP地址!您需要一个其他人可以访问的IP地址(公开)。这样你就可以在那里托管你的应用程序。。