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中的__new__特殊方法
Jun 02 Python
Python之py2exe打包工具详解
Jun 14 Python
Python3 处理JSON的实例详解
Oct 29 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
Oct 31 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
Jun 04 Python
Python爬虫与反爬虫大战
Jul 30 Python
Python脚本打包成可执行文件过程解析
Oct 20 Python
python实现Nao机器人的单目测距
Sep 04 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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
dedecms系统常用术语汇总
2007/04/03 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
PHP生成树的方法
2015/07/28 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
jquery移动点击的项目到列表最顶端的方法
2015/06/24 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
JavaScript快速切换繁体中文和简体中文的方法及网站支持简繁体切换的绝招
2016/03/07 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
详解vue axios中文文档
2017/09/12 Javascript
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
原生JS实现九宫格抽奖
2020/09/13 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
[01:04:14]VP vs TNC 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python画一个玫瑰和一个爱心
2020/08/18 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
python制作微博图片爬取工具
2021/01/16 Python
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
大学生就业推荐信范文
2013/11/29 职场文书
党的群众路线教育实践活动个人自我剖析材料
2014/10/07 职场文书
2014年环保工作总结
2014/11/26 职场文书
面试通知短信
2015/04/20 职场文书
大学生求职意向书
2015/05/11 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
python基础之文件操作
2021/10/24 Python
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python