2

我想创建一个以 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);

          }
     }
}

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

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

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

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

4

3 回答 3

4

执行此操作时需要注意两件事;

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

  • 如果您运行的是 Windows,防火墙可能会妨碍您。如果看起来是这样(即您可以从本地机器连接到您的 IP#,但没有其他东西可以连接),您将需要手动打开端口。有很多指南如何在谷歌上做到这一点。

于 2012-02-25T17:02:57.823 回答
1

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

  1. 您需要公开上述 IP 地址以获取其他人可以访问的 URL。
  2. 如果仅将 URL 公开给您的域(即在 Intranet 的情况下),请咨询您的系统管理员以配置 Intranet 上的 IP 地址。
  3. 本地主机设置可访问性仅限于您的机器。
  4. 确保检查 URL 可访问性的防火墙约束以实施第 1 点或第 2 点

有关更多信息,请查看HTTPListener的参考

  1. HTTP监听器
  2. HTTP监听器
  3. HTTP监听器
于 2012-02-25T19:38:00.603 回答
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

你应该使用公共地址..

于 2012-12-06T11:59:18.640 回答