python shell根据ip获取主机名代码示例


Posted in Python onNovember 25, 2017

这篇文章里我们主要分享了python中shell 根据 ip 获取 hostname 或根据 hostname 获取 ip的代码,具体介绍如下。

笔者有时候需要根据hostname获取ip
比如根据machine.company.com 获得ip 10.173.14.117

方法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 命令把远程机器和本地的文本文件都删除

代码如下:

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 获取主机名的代码示例,我是win10系统,待会可以试试:

环境:windows10 64位 + python2.7

代码如下:

import socket
hostName = socket.gethostname()

运行结果如下:

>> import socket
>>> hostName = socket.gethostname()
>>> print hostName
LAPTOP-H7MGGAAT

总结

以上就是本文关于python shell根据ip获取主机名代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
python字符串加密解密的三种方法分享(base64 win32com)
Jan 19 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
对Python信号处理模块signal详解
Jan 09 Python
Python实现的序列化和反序列化二叉树算法示例
Mar 02 Python
python2和python3在处理字符串上的区别详解
May 29 Python
linux下安装python3和对应的pip环境教程详解
Jul 01 Python
Python编程中类与类的关系详解
Aug 08 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
Python定时器线程池原理详解
Feb 26 Python
python wsgiref源码解析
Feb 06 Python
Python中OpenCV实现查找轮廓的实例
Jun 08 Python
详解Python中__new__方法的作用
Mar 31 Python
python自动裁剪图像代码分享
Nov 25 #Python
分享一个简单的python读写文件脚本
Nov 25 #Python
python之virtualenv的简单使用方法(必看篇)
Nov 25 #Python
python多进程实现进程间通信实例
Nov 24 #Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 #Python
Python二叉树的定义及常用遍历算法分析
Nov 24 #Python
详解python上传文件和字符到PHP服务器
Nov 24 #Python
You might like
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
PHP4和PHP5性能测试和对比 测试代码与环境
2007/08/17 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
通过修改referer下载文件的方法
2008/05/11 Javascript
JavaScript 继承使用分析
2011/05/12 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
深入了解JavaScript中的Symbol的使用方法
2015/07/28 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
request请求获取参数的实现方法(post和get两种方式)
2016/09/27 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
webpack之引入图片的实现及问题
2018/10/08 Javascript
java遇到微信小程序 "支付验证签名失败" 问题解决
2019/12/22 Javascript
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
python爬取各类文档方法归类汇总
2018/03/22 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
numpy添加新的维度:newaxis的方法
2018/08/02 Python
Python元组知识点总结
2019/02/18 Python
python递归法解决棋盘分割问题
2019/07/17 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
浅谈python print(xx, flush = True) 全网最清晰的解释
2020/02/21 Python
HTML5之SVG 2D入门8—文档结构及相关元素总结
2013/01/30 HTML / CSS
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
优秀学生党员先进事迹材料
2014/05/29 职场文书
公司放假通知怎么写
2015/04/15 职场文书
党员进社区活动总结
2015/05/07 职场文书
2015年小学教导处工作总结
2015/05/26 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
导游词之珠海轮廓
2019/10/25 职场文书