本文共 770 字,大约阅读时间需要 2 分钟。
是python的一个微型web框架,目前正在学习一个使用bottle的开源项目源码。刚好接触到获取客户端机子的本机IP和主机名,特此记录一下。
项目地址:使用socket模块获取IP和HOST,其实很简单:
#!/usr/bin/env pythonimport socket# 获取主机名HOSThost = socket.gethostname()# 获取本机IP# 这里输出的ip实际上是一个元组,你可以输出看一下,而且其中ip地址字段输出为列表ip = socket.gethostbyname_ex(host)print hostprint ipprint "[%s] <==> [%s]" % (host, ip[2][0])
输出结果:
yt1('yt1.localdomain', [], ['192.168.231.200'])[yt1] <==> [192.168.231.200]
上述测试在虚拟机上进行的,会发现:
1、IP获取语句执行缓慢,不过后来在服务器上测试发现却很快。 2、在测试中ip获取结果基本上与上处输出结果相似,只有三个元素,第三个为ip地址;在实际服务器上发现依然只有一个ip输出,即使你配置多个ip存在。该方法还是在该项目中看到的,供大家参考:
#!/usr/bin/env pythonimport socketcsock =socket.socket(socket.AF_INET,socket.SOCK_DGRAM)csock.connect(('8.8.8.8',80))(addr,port)=csock.getsockname()csock.close()print addr
输出结果:
192.168.231.200 38964
转载地址:http://rworb.baihongyu.com/