这篇文章里我们主要分享了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 shell根据ip获取主机名代码示例

本文地址: http://www.cppcns.com/jiaoben/python/212213.html

python 通过ip获取城市_python shell根据ip获取主机名代码示例相关推荐

  1. python 通过ip获取城市_Python根据用户IP判断所属城市 !

    事情源于7月以来,SEO销售额下降比较明显,老板让我想想办法提升SEO销售额. 而销量=流量×转化率×客单价,客单价我这边没法控制,只能从流量和转化率两个方向入手了.但对SEO来讲,短时间大幅度提升S ...

  2. python 通过ip获取城市_python中通过客户端IP拿到所在城市和当地天气信息—附带项目案例...

    首先,需求分析: 1.拿到客户端IP 2.通过IP拿到客户端所在地区 3.通过地区拿到当地天气 4.整合功能,展示给用户 第一步,如何拿到用户IP 我们以Django环境为例 # 客户端的请求,IP信 ...

  3. python中loc的用法_python pandas Series.loc用法及代码示例

    通过标签或布尔数组访问一组行和列. .loc[]主要基于标签,但也可以与布尔数组一起使用. 允许的输入为: 单个标签,例如5或者'a', (注意5被解释为索引的标签,而不是索引的整数位置). 标签的列 ...

  4. python用turtle画彩虹_Python利用turtle库绘制彩虹代码示例

    语言:Python IDE:Python.IDE 需求 做出彩虹效果 颜色空间 RGB模型:光的三原色,共同决定色相 HSB/HSV模型:H色彩,S深浅,B饱和度,H决定色相 需要将HSB模型转换为R ...

  5. python 通过ip获取城市_python 根据ip获取地理位置

    !/usr/bin/python coding=utf-8 import dpkt import socket import pygeoip import optparse gi = pygeoip. ...

  6. python爬取餐饮数据_Python爬取附近餐馆信息代码示例

    本代码主要实现抓取大众点评网中关村附近的餐馆有哪些,具体如下: import urllib.request import re def fetchFood(url): # 模拟使用浏览器浏览大众点评的 ...

  7. python中change的用法_Python Pandas dataframe.pct_change()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.pct ...

  8. python中mean的用法_Python Pandas dataframe.mean()用法及代码示例

    Python是进行数据分析的一种出色语言,主要是因为以数据为中心的python软件包具有奇妙的生态系统. Pandas是其中的一种,使导入和分析数据更加容易. Pandas dataframe.mea ...

  9. python中convert函数用法_Python Pandas DataFrame.tz_convert用法及代码示例

    Pandas DataFrame是带有标签轴(行和列)的二维大小可变的,可能是异构的表格数据结构.算术运算在行和列标签上对齐.可以将其视为Series对象的dict-like容器.这是 Pandas ...

最新文章

  1. Android TextView设置透明度方法的注意点
  2. 【转】Flex4:利用HttpService与ASP.NET传输JSON数据(登录为例)
  3. mysql 日期时间格式化字符串_MySQL日期函数与日期转换格式化函数大全
  4. Linux系统的CPU使用率和Load
  5. CSS3盒子阴影box-shadow
  6. MIT算法导论(一)——算法分析和引论
  7. js 文本加密 php解密,JavaScript加密和PHP解密
  8. 打着改造传统市场的旗号玩垄断
  9. 京东商城架构峰值系统设计
  10. Python字符串逆序输出(六种方法)
  11. 前端开发:Mac电脑修改hosts文件的方法
  12. 怎么把做好的ps保存成图片_ps存成jpg格式的快捷键,ps如何另存为图片格式
  13. 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day1)
  14. Gym - 101350E Competitive Seagulls——博弈
  15. Qt数据库应用18-横向纵向排版
  16. 教育消费分期系统介绍
  17. Qt中如何做出CSS那样华丽质感以及3D立体感的按钮?
  18. 使用js调用设备摄像头并实现拍照
  19. 改善到底多大 FXAA画质游戏实测
  20. go开源项目整理-新手篇_一周的前5篇文章:您正在从事什么开源项目?

热门文章

  1. 2018.5.28 PSOC第一枪:基于cypress的蓝牙开发
  2. java面试-Java并发编程(六)——线程间的通信
  3. 一个持续6年的针对多国政府机构的网络间谍活动 — “美人鱼行动”
  4. MySQL提示The server quit without updating PID file问题的解决办法
  5. BCM_I2C函数更改
  6. POJ3485 区间问题
  7. 中国建材50强:利用帆软构建数据管理闭环,数据出错率降低50%
  8. C#字符串(String)操作
  9. 『震惊』秘密报告披露转基因食品危害
  10. C++函数如何操作堆栈指针esp