python shell根據(jù)ip獲取主機(jī)名代碼示例
這篇文章里我們主要分享了python中shell 根據(jù) ip 獲取 hostname 或根據(jù) hostname 獲取 ip的代碼,具體介紹如下。
筆者有時(shí)候需要根據(jù)hostname獲取ip
比如根據(jù)machine.company.com 獲得ip 10.173.14.117
方法1:利用 socket 模塊 里的 gethostbyname 函數(shù)
代碼如下,使用socket模塊
>>> import socket >>> socket.gethostbyname("www.baidu.com") '61.135.169.125' >>> socket.gethostbyname("rs.xidian.edu.cn") '202.117.119.1'
方法2 利用 shell 中 hostname 命令
疑惑:
有時(shí)候socket不太穩(wěn)定,有時(shí)候無法獲取到 ip 具體原因帶查明。
筆者自己想的一個(gè)方法,不是很優(yōu)雅,比較繁瑣,不過倒是很健壯。
主要思想是在另一臺機(jī)器上把 hostname 信息寫到文件里,然后把文件拷到本機(jī)器上,讀取文件里的 hostname 信息。
利用 plink 在遠(yuǎn)程ip機(jī)器上執(zhí)行hostname > %s.hostname命令, 將hostname 信息輸出到文件
然后利用本地的 pscp 將遠(yuǎn)程機(jī)器上帶有hostname的文本文件/root/%s.hostname 復(fù)制到本地
利用 python 的文本讀取功能讀取信息, 從中取出hostname字符串
收尾工作:利用 rm 命令把遠(yuǎn)程機(jī)器和本地的文本文件都刪除
代碼如下:
def getHostName(ip): command = 'java -jar %s %s "hostname > %s.hostname"' %(remoteCmdLoca,ip,ip) result = subprocess.call(command, shell=True) command = '%s -q -r -pw passwd %s root@%s:/root' % (pscpLoca, pscpLoca, ip) result = subprocess.call(command, shell=True) command = '%s -q -r -pw passwd root@%s:/root/%s.hostname %s' %(pscpLoca,ip,ip,fileDir) result = subprocess.call(command, shell=True) fileName = fileDir + ip + '.hostname' readFile = open(fileName,'r') hostnameInfo = str(readFile.readline().strip('\n')) readFile.close() subprocess.call('rm '+ fileName, shell=True) print "=========%s hostname is %s========" %(ip,hostnameInfo) return hostnameInfo
下面分享一則簡單的windows下python 獲取主機(jī)名的代碼示例,我是win10系統(tǒng),待會可以試試:
環(huán)境:windows10 64位 + python2.7
代碼如下:
import socket hostName = socket.gethostname()
運(yùn)行結(jié)果如下:
>> import socket >>> hostName = socket.gethostname() >>> print hostName LAPTOP-H7MGGAAT
總結(jié)
以上就是本文關(guān)于python shell根據(jù)ip獲取主機(jī)名代碼示例的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:
如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- python獲取本機(jī)所有IP地址的方法
- Python簡單獲取網(wǎng)卡名稱及其IP地址的方法【基于psutil模塊】
- Python獲取本機(jī)所有網(wǎng)卡ip,掩碼和廣播地址實(shí)例代碼
- Python查詢IP地址歸屬完整代碼
- Python2.7基于淘寶接口獲取IP地址所在地理位置的方法【測試可用】
- python獲取外網(wǎng)ip地址的方法總結(jié)
- python實(shí)現(xiàn)根據(jù)主機(jī)名字獲得所有ip地址的方法
- python實(shí)現(xiàn)根據(jù)ip地址反向查找主機(jī)名稱的方法
- python獲取本機(jī)mac地址和ip地址的方法
- python通過scapy獲取局域網(wǎng)所有主機(jī)mac地址示例
- Python3獲取電腦IP、主機(jī)名、Mac地址的方法示例
相關(guān)文章
python函數(shù)的默認(rèn)參數(shù)請勿定義可變類型詳解
這篇文章主要介紹了python函數(shù)的默認(rèn)參數(shù)請勿定義可變類型詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02Python基于分析Ajax請求實(shí)現(xiàn)抓取今日頭條街拍圖集功能示例
這篇文章主要介紹了Python基于分析Ajax請求實(shí)現(xiàn)抓取今日頭條街拍圖集功能,涉及Python針對今日頭條URL請求與json數(shù)據(jù)處理相關(guān)操作技巧,需要的朋友可以參考下2018-07-07python通過apply使用元祖和列表調(diào)用函數(shù)實(shí)例
這篇文章主要介紹了python通過apply使用元祖和列表調(diào)用函數(shù),實(shí)例分析了python中apply方法的使用技巧,需要的朋友可以參考下2015-05-05django admin后臺添加導(dǎo)出excel功能示例代碼
這篇文章主要介紹了django admin 后臺添加導(dǎo)出excel功能示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-05-05