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 相关文章推荐
bat和python批量重命名文件的实现代码
May 19 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
node.js获取参数的常用方法(总结)
May 29 Python
Python实现比较扑克牌大小程序代码示例
Dec 06 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
python实现画一颗树和一片森林
Jun 25 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
Python和Go语言的区别总结
Feb 20 Python
python中return的返回和执行实例
Dec 24 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
解决IDEA 的 plugins 搜不到任何的插件问题
May 04 Python
Python绘图之柱形图绘制详解
Jul 28 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中创建并处理图象
2006/10/09 PHP
最省空间的计数器
2006/10/09 PHP
基于Linux调试工具strace与gdb的常用命令总结
2013/06/03 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
javascript document.execCommand() 常用解析
2009/12/14 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
vuex中使用对象展开运算符的示例
2017/09/25 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
[19:15]DK战队纪录片
2014/09/02 DOTA
[01:48]完美圣典齐天大圣至宝宣传片
2016/12/17 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
python随机生成指定长度密码的方法
2015/04/04 Python
python3.5使用tkinter制作记事本
2016/06/20 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
Python实现简单层次聚类算法以及可视化
2019/03/18 Python
python3.7 使用pymssql往sqlserver插入数据的方法
2019/07/08 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
中国最大的团购网站:聚划算
2016/09/21 全球购物
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
Linux管理员面试题 Linux admin interview questions
2016/07/08 面试题
最新大学生自我评价
2013/09/24 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
《赶海》教学反思
2014/04/20 职场文书
2015年公务员转正工作总结
2015/04/24 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2019年中学生的思想品德评语集锦
2019/12/19 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL