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的操作难点总结(新手必看篇)
Aug 03 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
详解python3 + Scrapy爬虫学习之创建项目
Apr 12 Python
python制作简单五子棋游戏
Jun 18 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
Windows平台Python编程必会模块之pywin32介绍
Oct 01 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
opencv 图像滤波(均值,方框,高斯,中值)
Jul 08 Python
Python绘制散点图之可视化神器pyecharts
Jul 07 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
Terran兵种介绍
2020/03/14 星际争霸
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
wordpress网站转移到本地运行测试的方法
2017/03/15 PHP
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
解决jquery异步按一定的时间间隔刷新问题
2012/12/10 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
ES6学习笔记之正则表达式和字符串正则方法分析
2017/04/25 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
ES5新增数组的实现方法
2020/05/12 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
python实现计算倒数的方法
2015/07/11 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
详解Python传入参数的几种方法
2019/05/16 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
在python中修改.properties文件的操作
2020/04/08 Python
python else语句在循环中的运用详解
2020/07/06 Python
python定义具名元组实例操作
2021/02/28 Python
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
会计自我鉴定
2014/02/04 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
文明和谐家庭事迹材料
2014/05/18 职场文书
2015年酒店前台工作总结
2015/04/20 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
忆童年!用Python实现愤怒的小鸟游戏
2021/06/07 Python
JavaGUI模仿QQ聊天功能完整版
2021/07/04 Java/Android