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使用htpasswd实现基本认证授权的例子
Jun 10 Python
分析Python的Django框架的运行方式及处理流程
Apr 08 Python
Python实现豆瓣图片下载的方法
May 25 Python
python win32 简单操作方法
May 25 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
python实现机器学习之元线性回归
Sep 06 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
Sep 17 Python
python 提取tuple类型值中json格式的key值方法
Dec 31 Python
Python阶乘求和的代码详解
Feb 14 Python
Python3.6 中的pyinstaller安装和使用教程
Mar 16 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
pycharm永久激活超详细教程
Oct 29 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随机数生成代码与使用实例分析
2011/04/08 PHP
php数组合并array_merge()函数使用注意事项
2014/06/19 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
php数据结构之顺序链表与链式线性表示例
2018/01/22 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
js获取div高度的代码
2008/08/09 Javascript
使用JQUERY Tabs插件宿主IFRAMES
2010/01/01 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
推荐10 个很棒的 jQuery 特效代码
2015/10/04 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
浅谈js中的in-for循环
2016/06/28 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
get  post jsonp三种数据交互形式实例详解
2017/08/25 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
jQuery实现获取form表单内容及绑定数据到form表单操作分析
2018/07/03 jQuery
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
举例详解Python中循环语句的嵌套使用
2015/05/14 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
centos6.4下python3.6.1安装教程
2017/07/21 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
中国跨境电商:Tomtop
2017/03/16 全球购物
考试作弊被抓检讨书
2014/01/10 职场文书
环境科学专业教师求职信
2014/07/12 职场文书
争先创优公开承诺书
2014/08/30 职场文书
工伤私了协议书范本
2014/11/24 职场文书
田径运动会通讯稿
2015/07/18 职场文书
Golang中channel的原理解读(推荐)
2021/10/16 Golang
mysql如何查询连续记录
2022/05/11 MySQL