none
有什麼方法可以查到local server的ip RRS feed

  • 問題

  • 因為要在各種不同的環竟下做測試,所以使用DHCP的關係,因此每次所得到的IP都不固定,因此我的Client要連線時每次都要更改server的IP並重新部署,請問有什麼方法可以讓它自動得到SERVER的IP嗎?

    之前我是用以下的方法:

    RemoteEP = new IPEndPoint(IPAddress.Parse("192.168.0.108"), 8888); //可以連
    RemoteEP = new IPEndPoint(Dns.GetHostEntry("Server").AddressList[0], 8888); //無法連

    有人說Dns 無法解析 NetBIOS 名稱,那如果我的測試不要連上INTERNET的話就沒有辦法自動的取得IP了嗎?有什麼方法可以用HOST NAME得到區域網路內某台電腦的IP呢?

    2006年12月12日 上午 09:12

所有回覆

  • 用Dns.GetHostByName("xp").AddressList[0]
    Dns.GetHostByName可以抓到NetBios名稱
    2006年12月13日 上午 02:03
  • 我在一般pc上可以用,可是我部署到pda上就無法使用,請問這是什麼原因?
    2006年12月13日 上午 05:13
  • 我是用VS2005,所以應該不是.NET FRAMEWORK 2.0的問題。
    2006年12月13日 上午 07:02
  • 基本上,在本地端不太可能 Server 的 IP 會變動,如果你是用 Dynamic DNS(DDNS)的話,那你不連上 Internet,就無法用 Domain name 查到 Server 的 IP。除非你在本地端也有一個 DDNS Server,然後你的 Pocket PC 設定指向這台 DDNS Server,才有可能再透過 Dns.GetHostEntry() 來取得 Server 的 IP Address。

    2006年12月13日 上午 07:43
  • 因為我是用notebook當server,同時我們做實驗的地方不是固定的,因此我們每換一個地方,不管是NOTEBOOK或PDA的IP都是經由當地的DHCP SERVER來分配,我們並無法掌控這部份,所以我們會有SERVER IP不固定的現象。

    另外,我們在相同的網路環境之下,程式在PC、NOTEBOOK是可以RUN的,但是相同的程式在PDA上便會出現無法識別主機的狀況,所以一直覺得很奇怪,查不出原因,所以我想應該不是DNS的問題。

    2006年12月13日 下午 02:02
  • 那你的 PC, Notebook 在沒有連上 Internet(把網路卡 disable 或把無線網路關閉)時,可以運作嗎 ?
    而當時 PDA 有沒有連上 Internet ?

    如果 Server 有連上 Internet,或者內部有 DNS Server 時,要設定 PDA 指向 DNS Server,Dns 類別對名稱解析才會正常。
    因為 Dns 類別需要有正常的 TCP/IP DNS name resolution 才可以用 Dns.GetHostEntry("HostName") 來查詢伺服器的名稱。
    之前以為 Server 的 IP 會變動,我才會提到 DDNS 這個東西,如果 Server IP 不會變動,而只是因為環境不同造成 IP 不同,但 Server 的 Domain Name 一樣的話,就可以用這樣的機制。

    同樣的狀況,若是 NetBIOS 名稱的話,則是要看 WINS Server 有沒有存在和登錄在 PDA 的 name resolution 資料中。

    2006年12月14日 上午 02:19
  • 我在公司的區網192.168.0.x(沒有連上INTERNET)是可以查得到別台的,區網內沒有DNS,所以很奇怪。
    2006年12月15日 上午 12:43
  • 那可能就要查看 Windows Mobile 的 SDK,PC 上的 Windows 作業系統會自動發送 NetBIOS 的廣播封包來偵測網路上有沒有對應名稱的電腦(用 UNC 名稱連接到另一台電腦時),所以在沒有 DNS 的同網段網路中,可以自動偵知伺服器的位置(只要有 Server 的電腦名稱時),但 Windows Mobile 可能就沒有這樣的功能(試想在無線網路中充斥一堆廣播封包的情境吧)。
    2006年12月15日 上午 02:19