python shell根据ip获取主机名代码示例
这篇文章里我们主要分享了python中shell根据ip获取hostname或根据hostname获取ip的代码,具体介绍如下。
笔者有时候需要根据hostname获取ip
比如根据machine.company.com获得ip10.173.14.117
方法1:利用socket模块里的gethostbyname函数
代码如下,使用socket模块
>>>importsocket >>>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命令把远程机器和本地的文本文件都删除
代码如下:
defgetHostName(ip): command='java-jar%s%s"hostname>%s.hostname"'%(remoteCmdLoca,ip,ip) result=subprocess.call(command,shell=True) command='%s-q-r-pwpasswd%sroot@%s:/root'%(pscpLoca,pscpLoca,ip) result=subprocess.call(command,shell=True) command='%s-q-r-pwpasswdroot@%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"=========%shostnameis%s========"%(ip,hostnameInfo) returnhostnameInfo
下面分享一则简单的windows下python获取主机名的代码示例,我是win10系统,待会可以试试:
环境:windows1064位+python2.7
代码如下:
importsocket hostName=socket.gethostname()
运行结果如下:
>>importsocket >>>hostName=socket.gethostname() >>>printhostName LAPTOP-H7MGGAAT
总结
以上就是本文关于pythonshell根据ip获取主机名代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:
python自动裁剪图像代码分享
Python算法之图的遍历
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。