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装饰器
Jul 27 Python
python对json的相关操作实例详解
Jan 04 Python
python实现公司年会抽奖程序
Jan 22 Python
python开发游戏的前期准备
May 05 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
django商品分类及商品数据建模实例详解
Jan 03 Python
python3 Scrapy爬虫框架ip代理配置的方法
Jan 17 Python
使用Python获取当前工作目录和执行命令的位置
Mar 09 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
python制作图形界面的2048游戏, 基于tkinter
Apr 06 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 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
php多重接口的实现方法
2015/06/20 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
2019/02/15 PHP
Laravel Reponse响应客户端示例详解
2020/09/03 PHP
mailto的使用技巧分享
2012/12/21 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
JS常用知识点整理
2017/01/21 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
js实现简单的秒表
2020/01/16 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
PHP webshell检查工具 python实现代码
2009/09/15 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
对python中各个response的使用说明
2020/03/28 Python
全民健身日活动方案
2014/01/29 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
爽歪歪广告词
2014/03/20 职场文书
乡镇信息公开实施方案
2014/03/23 职场文书
《凡卡》教学反思
2014/04/09 职场文书
公开承诺书格式
2014/05/21 职场文书
被告代理词范文
2015/05/25 职场文书
周末问候语大全
2015/11/10 职场文书
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android