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中使用PDB库调试程序
Apr 05 Python
python更新列表的方法
Jul 28 Python
Python采用Django制作简易的知乎日报API
Aug 03 Python
使用TensorFlow实现SVM
Sep 06 Python
python实现简易动态时钟
Nov 19 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
python日志模块logbook使用方法
Sep 19 Python
python 利用jinja2模板生成html代码实例
Oct 10 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
Python3 requests模块如何模仿浏览器及代理
Jun 15 Python
Python3 如何开启自带http服务
May 18 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
Apr 14 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验证手机号码(支持归属地查询及编码为UTF8)
2013/02/01 PHP
PHP输出XML到页面的3种方法详解
2013/06/06 PHP
php中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
js select常用操作控制代码
2010/03/16 Javascript
字段太多jquey快速清空表单内容方法
2014/08/21 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
ES6中Math对象新增的方法实例详解
2017/04/25 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
基于Node.js实现压缩和解压缩的方法
2018/02/13 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
layui的布局和表格的渲染以及动态生成表格的方法
2019/09/18 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
[01:14]英雄,所敬略同——2018完美盛典宣传视频
2018/12/05 DOTA
Python2.x中str与unicode相关问题的解决方法
2015/03/30 Python
Python实现的简单计算器功能详解
2018/08/25 Python
详解Python学习之安装pandas
2019/04/16 Python
利用Python实现kNN算法的代码
2019/08/16 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
以SQLite和PySqlite为例来学习Python DB API
2020/02/05 Python
Python中os模块功能与用法详解
2020/02/26 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
python接入支付宝的实例操作
2020/07/20 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
EVE LOM英国官网:全世界最好的洁面膏
2017/10/30 全球购物
怎么写好自荐信
2013/10/30 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
我的中国梦演讲稿1000字
2014/08/19 职场文书
实习单位证明范例
2014/11/17 职场文书
教师个人自我评价
2015/03/04 职场文书
Python基础之tkinter图形化界面学习
2021/04/29 Python