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抓取某汽车网数据解析html存入excel示例
Dec 04 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
Apr 08 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 Python
Python模拟三级菜单效果
Sep 11 Python
python删除某个字符
Mar 19 Python
使用Python实现从各个子文件夹中复制指定文件的方法
Oct 25 Python
Django 1.10以上版本 url 配置注意事项详解
Aug 05 Python
Python集合操作方法详解
Feb 09 Python
Python线程threading模块用法详解
Feb 26 Python
python + selenium 刷B站播放量的实例代码
Jun 12 Python
python文件排序的方法总结
Sep 13 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
使用apache模块rewrite_module (转)
2007/02/14 PHP
php时间戳转换的示例
2014/03/31 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
用JavaScript 处理 URL 的两个函数代码
2007/08/13 Javascript
IE php关于强制下载文件的代码
2008/08/23 Javascript
nodejs的10个性能优化技巧
2014/07/15 NodeJs
JavaScript中SetInterval与setTimeout的用法详解
2015/11/10 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
2015/11/27 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
Node.js环境下编写爬虫爬取维基百科内容的实例分享
2016/06/12 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
yii form 表单提交之前JS在提交按钮的验证方法
2017/03/15 Javascript
bootstrap3使用bootstrap datetimepicker日期插件
2017/05/24 Javascript
node vue项目开发之前后端分离实战记录
2017/12/13 Javascript
通过fastclick源码分析彻底解决tap“点透”
2017/12/24 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
python入门教程 python入门神图一张
2018/03/05 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
python图像和办公文档处理总结
2019/05/28 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
泰国第一在线超市:Tops
2021/02/13 全球购物
2014年高三毕业生自我评价
2014/01/11 职场文书
职业生涯规划设计步骤
2014/01/12 职场文书
《太阳》教学反思
2014/02/21 职场文书
小学生演讲稿大全
2014/04/25 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers