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判断windows隐藏文件的方法
Mar 21 Python
深入讲解Python中的迭代器和生成器
Oct 26 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
利用python实现数据分析
Jan 11 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
Python统计分析模块statistics用法示例
Sep 06 Python
python中class的定义及使用教程
Sep 18 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 Python
Python callable内置函数原理解析
Mar 05 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
使用Python webdriver图书馆抢座自动预约的正确方法
Mar 04 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
php实现上传图片文件代码
2015/07/19 PHP
php利用gd库为图片添加水印
2016/11/09 PHP
ThinkPHP 3.2.2实现事务操作的方法
2017/05/05 PHP
在vs2010中调试javascript代码方法
2011/02/11 Javascript
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
javascript创建动态表单的方法
2015/07/25 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
详解JS中的柯里化(currying)
2017/08/17 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
python中类的一些方法分析
2014/09/25 Python
python win32 简单操作方法
2017/05/25 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
python如何让类支持比较运算
2018/03/20 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
Python 存取npy格式数据实例
2020/07/01 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
Europcar美国/加拿大:预订汽车或卡车租赁服务
2018/11/13 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
班会关于环保演讲稿
2013/12/29 职场文书
硕士生工作推荐信
2014/03/07 职场文书
我的梦想演讲稿
2014/04/30 职场文书
学习型班组申报材料
2014/05/31 职场文书
股东合作协议书
2014/09/12 职场文书
世界文化遗产导游词
2015/02/13 职场文书
浅析Python中的套接字编程
2021/06/22 Python