2013-07-23 24 views
5

我有這個迄今爲止...如何使用我的公網IP與HttpListener

public static HttpListener listener = new HttpListener(); 
public static string startUpPath = Application.StartupPath; 
public WebServer() 
{ 
    listener.Start(); 

    listener.Prefixes.Add("http://(here I want my public ip)/"); 
    Thread t = new Thread(new ThreadStart(clientListener)); 
    t.Start(); 
}

但是,當我初始化類,它說"The specified Network format is not valid"

翻譯可能不是完美的,因爲我的視覺工作室語言是西班牙語。 我的ip看起來像95.^^。^^^。^^我認爲這可能是問題,因爲它在我使用本地ip時起作用。

//編輯

確切的例外是: 「厄爾尼諾formato德爾農布雷迪奧斯紅especificado沒有ES VALIDO」 這是"The specified network name is not valid". 如果我添加前綴 "http:// + :80/" 它仍在繼續,但我怎麼能通過我的公共IP訪問?

+0

什麼是確切的例外? –

+0

如果添加前綴「http:// +:80 /'會發生什麼? – spender

+0

我不明白這個問題,你想知道如何檢索公共IP或使用時有問題嗎? – Machinegon

回答

6

設置此項時,應使用內部IP,因爲這是您正在監聽的實際IP。 爲了從外部IP獲取流量,您需要將流量從路由器轉發到正在偵聽其內部IP的計算機。

設置它的一種方法是使用端口轉發,從您的路由器,您將希望將端口80上進來的任何流量引導到您的計算機。

更多信息: http://en.wikipedia.org/wiki/Port_forwarding

+1

其實它看起來是我的路由器的問題,因爲它不轉發端口,感謝您的時間和答案,您的鏈接非常有趣,我會讀它Jamie。 –

1

傑米說,你HTTPListener應綁定到該應用程序的運行網卡的IP地址。除非你有一個實際上配置有公共IP的網卡(例如不通過路由器),否則你的私人地址是可以使用的地址。

一個簡單的方法來檢查這是運行IPCONFIG並查看列出的IP地址。