python shell根据ip获取主机名代码示例

yipeiwu_com7年前Python基础

这篇文章里我们主要分享了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算法之图的遍历

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

通过python实现弹窗广告拦截过程详解

通过python实现弹窗广告拦截过程详解

原理 这里实现的弹窗拦截,是程序不断的监视电脑屏幕,当出现需要拦截的窗口时,自动控制屏幕点击事件关闭。第一步:将需要关闭弹窗的点击位置截图。 直接上代码 while True:...

Pytorch Tensor的索引与切片例子

1. Pytorch风格的索引 根据Tensor的shape,从前往后索引,依次在每个维度上做索引。 示例代码: import torch a = torch.rand(4, 3...

树莓派动作捕捉抓拍存储图像脚本

本文实例为大家分享了树莓派动作捕捉抓拍存储图像的具体代码,供大家参考,具体内容如下 #!/usr/bin/python # original script by brainflak...

Python实现获取汉字偏旁部首的方法示例【测试可用】

Python实现获取汉字偏旁部首的方法示例【测试可用】

本文实例讲述了Python实现获取汉字偏旁部首的方法。分享给大家供大家参考,具体如下: 功能介绍 传入一个汉字,返回其偏旁部首 字典 分为本地字典与网络字典,本地词典来自精简版的新华字典...

利用Python实现Windows定时关机功能

利用Python实现Windows定时关机功能

是最初的几个爬虫,让我认识了Python这个新朋友,虽然才刚认识了几天,但感觉有种莫名的默契感。每当在别的地方找不到思路,总能在Python找到解决的办法。自动关机,在平时下载大文件,以...