2016-04-15 55 views
0

我想從主機名獲取fqdn。我試圖在linux服務器上執行這個命令: python -c「import sys,socket; sys.stdout.write(socket.gethostbyaddr('')[0])」 這個命令運行良好,並返回fqdn從主機名。 「:當我做[錯誤1]未知主機socket.gethostbyaddr返回未知主機

,1號線,在 socket.herror「主機」但是對於一些其他的服務器,它返回此錯誤: 回溯(最近通話最後一個) 文件」 linux命令,我用python命令獲取失敗主機名的fqdn。

任何人都有一個解決方案,該plz?

+0

我在同一個界面上獲得了3個IP並獲得了5個服務。你想得到主機名,但哪個接口(或克隆接口)是最新的?在獲取主機名之前定義一個IP地址。使用'netifaces'模塊... – dsgdfg

回答

0

Difficulty using Python's socket.gethostbyaddr()涵蓋了這個很好。

要點是您必須驗證是否有PTR記錄。如果不是,你將不得不通過嘗試,除了子句來處理它。

具體看一下比較有效和無效PTR記錄的部分。

+0

我的輸入不是IP地址,但它是沒有域的主機名。只是服務器的名稱。 – user3652134