python shell 根据 ip 获取 hostname,pythonhostname,python shell
python shell 根据 ip 获取 hostname,pythonhostname,python shell
python shell 根据 ip 获取 hostname 或根据 hostname 获取 ip 前言 笔者有时候需要根据hostname获取ip比如根据machine.company.com 获得ip 10.173.14.117
本文地址http://blog.csdn.net/never_cxb/article/details/47831 方法1:利用 socket 模块 里的 gethostbyname 函数 代码如下,使用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 命令 疑惑: 有时候socket不太稳定,有时候无法获取到 ip 具体原因带查明。 笔者自己想的一个方法,不是很优雅,比较繁琐,不过倒是很健壮。 主要思想是在另一台机器上把 hostname 信息写到文件里,然后把文件拷到本机器上,读取文件里的 hostname 信息。 利用 plink 在远程ip机器上执行hostname > %s.hostname命令, 将hostname 信息输出到文件然后利用本地的 pscp 将远程机器上带有hostname的文本文件/root/%s.hostname 复制到本地利用 python 的文本读取功能读取信息, 从中取出hostname字符串收尾工作:利用rm命令把远程机器和本地的文本文件都删除 代码如下: ```pythondef 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
相关内容
- python 爬虫,python,学习python就一直想
- Djano发送邮件,,转自:https://d
- Python 中使用 MongoDB 存储爬虫数据,pythonmongodb,现在在做
- python实现将文本转换成语音的方法,python语音,# Text T
- 情人节的颤抖,情人节颤抖,#! /usr/bin/
- 查询oralce数据库返回数据字典,oralce字典, def sqlD
- 自己用python随意写的12306订票代码,python12306,None
- python 电话本管理例子,python例子,#!/usr/bin/e
- 将100以内的质数挑选出来,100质数挑选出来,"""使用
- python、bash猜数字游戏,pythonbash猜数字,#!/bin/bashN
评论关闭