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的Django框架中的Context使用
Jul 15 Python
python遍历目录的方法小结
Apr 28 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
python 简单的多线程链接实现代码
Aug 28 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
Python绘制3d螺旋曲线图实例代码
Dec 20 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
Jun 03 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
利用Matlab绘制各类特殊图形的实例代码
Jul 16 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
基于qmail的完整WEBMAIL解决方案安装详解
2006/10/09 PHP
PHP操作文件方法问答
2007/03/16 PHP
Phpbean路由转发的php代码
2008/01/10 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
接收键盘指令的脚本
2006/06/26 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
jQuery EasyUI 选项卡面板tabs的使用实例讲解
2017/12/25 jQuery
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
Python中对象迭代与反迭代的技巧总结
2016/09/17 Python
python之从文件读取数据到list的实例讲解
2018/04/19 Python
Python操作远程服务器 paramiko模块详细介绍
2019/08/07 Python
浅析python标准库中的glob
2020/03/13 Python
python实例化对象的具体方法
2020/06/17 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
Python爬虫之Selenium实现窗口截图
2020/12/04 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
数字天堂软件测试面试题
2012/12/23 面试题
2014三八妇女节活动总结
2014/03/01 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
小学教师岗位职责
2015/04/02 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
工作汇报材料难写?方法都在这里了!
2019/07/01 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
apache虚拟主机配置的三种方式(小结)
2022/07/23 Servers