2012-02-25 149 views
2

我想创建一个URL网站作为我IP地址 [例如:192.XXX]使用httpListener创建具有URL作为我的IP地址定义网站

该网站将与“回应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地址在浏览器中,但它不起作用

回答

0

的问题是,我是指一个private network地址,该地址是localnetwork并且不能由任何人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 

你应该使用公共地址..

4

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

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

  • 如果您正在运行Windows,防火墙可能会妨碍您的工作。如果它似乎(即你可以从本地机器连接到你的IP#但没有其他东西可以连接),你需要手动打开端口。有很多指导如何在Google上做到这一点。

+0

@Anirudha你可以显示你的代码吗?您需要添加两个单独的前缀,一个用于localhost(如果您想要听),另一个用于182.X.X.X.您只能添加实际分配给您计算机的地址,例如,如果您的计算机具有192.xxx地址并位于IP为182​​.xxx的端口转发代理之后,则无法将182.xxx地址添加为前缀听。 – 2012-02-25 17:12:10

+1

@Airirha另一个提示是,你可以添加一个前缀'http:// +:80'来立即侦听分配给你的计算机的所有地址的端口80。 – 2012-02-25 17:16:19

+0

实际上我使用h ** p://182.X.X.X/localhost/而不是h ** p:// localhost /但仍然没有结果! – Anirudha 2012-02-25 17:29:24

1

@Joachim回复已经足够好了。我想添加更多...

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

欲了解更多信息,请查看HTTPListener为参考

  1. HTTPListener
  2. HTTPListener
  3. HTTPListener
+0

我有一个私人公司brodband ..是代理服务器的ip地址! – Anirudha 2012-02-25 19:48:38

+1

您需要一个可供其他人访问的IP地址(公开曝光)。所以你可以在那里托管你的应用程序.. – Pankaj 2012-02-25 19:56:57