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 相关文章推荐
以一段代码为实例快速入门Python2.7
Mar 31 Python
一波神奇的Python语句、函数与方法的使用技巧总结
Dec 08 Python
Python测试人员需要掌握的知识
Feb 08 Python
详谈Numpy中数组重塑、合并与拆分方法
Apr 17 Python
Python 3.6 -win64环境安装PIL模块的教程
Jun 20 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
Python如何计算语句执行时间
Nov 22 Python
python计算二维矩形IOU实例
Jan 18 Python
python super用法及原理详解
Jan 20 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
django admin 添加自定义链接方式
Mar 11 Python
Python基于paramunittest模块实现excl参数化
Apr 26 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
php adodb操作mysql数据库
2009/03/19 PHP
PHP异常处理Exception类
2015/12/11 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
jquery实现焦点图片随机切换效果的方法
2015/03/12 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
2015/08/24 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
详解在Vue中通过自定义指令获取dom元素
2017/03/04 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
Pandas统计重复的列里面的值方法
2019/01/30 Python
Python3的unicode编码转换成中文的问题及解决方案
2019/12/10 Python
如何基于python实现归一化处理
2020/01/20 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
python软件都是免费的吗
2020/06/18 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
Shell编程面试题
2012/05/30 面试题
学习十八大精神心得体会
2013/12/31 职场文书
上班睡觉检讨书
2014/01/09 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
毕业设计工作总结
2015/08/14 职场文书
话题作文之呼唤
2019/12/18 职场文书
Java常用函数式接口总结
2021/06/29 Java/Android
Java Lambda表达式常用的函数式接口
2022/04/07 Java/Android