我需要「發現」運行我的Windows WCF服務的本地計算機,以便與他們交談。現在,您必須手動輸入ipaddress:port組合,但我希望有一個(web?)應用程序來監視運行服務的機器並報告它。使用.NET在特定的開放端口上發現本地網絡上的計算機
當我嘗試連接到一個無效的IP /端口時,它需要「永遠」超時,所以檢查我的本地網絡上的所有IP是不可行的。是否有一個快速的方式來發現哪些機器可以打開的端口(所有的人都在防火牆中孔爲特定端口)
TIA
我需要「發現」運行我的Windows WCF服務的本地計算機,以便與他們交談。現在,您必須手動輸入ipaddress:port組合,但我希望有一個(web?)應用程序來監視運行服務的機器並報告它。使用.NET在特定的開放端口上發現本地網絡上的計算機
當我嘗試連接到一個無效的IP /端口時,它需要「永遠」超時,所以檢查我的本地網絡上的所有IP是不可行的。是否有一個快速的方式來發現哪些機器可以打開的端口(所有的人都在防火牆中孔爲特定端口)
TIA
你可以有配置爲接觸Web應用程序和報告的客戶端它的位置在運行您的wcf服務?
這將需要網絡應用程序運行在一臺不會改變的已知機器上。
我已經做了幾次。只需將超時值設置得非常低。
如果它是一臺真正的機器,但沒有打開端口,它應該快速失敗。如果你正在做一個子網掃描,那麼,你需要有一個(比如說)1秒的超時時間。
多線程掃描 - 這是一個有趣的事情來編碼
編輯:我無法找到我的代碼。這裏是鏈接的解決方案從別人
爲什麼不能讓他們使用多播每隔一段時間播出了「HELLO」分組。這當然假定您的方案中可以使用多播,而不是通過路由域進行通話。只需使用「HELLO」數據包內容(例如ipv4單播地址)以確保您知道應該與之通話的內容。當然,你不需要使用多播,你可以發送一個廣播到255.255.255.255這不是一個複雜的任務,然後監聽這些消息。這樣做的好處是您也可以啓用端口的協商。例如,如果您的應用程序通常綁定到一個端口,但該端口不可用,它可以自動選擇一個端口並讓您知道它綁定的端口。避免手動配置維護和頭痛。地獄,它甚至可以使用廣播發送消息,並檢查它是否收到它。如果沒有,請發出警報讓系統管理員知道。 我沿着這些線使用了一些東西來管理軟開關(語音)的測試線束,並且工作得很好。 當然,我可能在這方面非常失望。只是想出這裏的框。
你可以請分享一些代碼片段讓我開始?我不確定哪些.NET類最適合這個。 – MexDev 2010-02-04 03:21:06