我正在寫一個C++應用程序,它接收一個LAN計算機名稱作爲外部世界的輸入(例如\\ PCNAME123,我可以通過在Windows運行提示符或IE地址欄中鍵入來訪問它),並且需要獲取一些基於該名稱的數據,例如通過調用gethostbyname()
函數。以編程方式將LAN計算機名稱解析爲完全限定名稱?
問題是我需要我認爲所謂的(我是新來的Winsock和網絡編程一般,所以我可能沒有術語權限)完全限定的名稱(例如PCNAME123.domainname.net)。我已經測試過,gethostbyname()
可以正常工作,但不能與「PCNAME123」或「\\ PCNAME123」配合使用。
如何獲取該網絡計算機的完全限定名稱(請注意,它不是用於本地主機,而是用於本地網絡上的其他計算機)?
除非您有其他信息(例如「它是AD域的成員」或「它與我在同一DNS域中」),否則在邏輯上不可能將非限定名稱轉換爲合格名稱,兩個(或更多)計算機可能具有相同的非限定名稱的簡單原因,那麼如何判斷哪一個可以選擇? – 2014-08-29 12:02:48
與Internet Explorer或Run提示符一樣嗎?如果給出了「不明確」的非限定名稱,我可以對運行提示或IE的相同行爲進行確認。 – user3671607 2014-08-30 13:21:03
我的錯誤是,我錯過了機器在本地網絡上的限定符。這使事情變得更容易,一開始如果有人試圖設置重複名稱,機器可能會投訴。 :-) – 2014-08-31 21:24:30