博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bottle学习之使用socket获取本机IP和主机名
阅读量:2493 次
发布时间:2019-05-11

本文共 770 字,大约阅读时间需要 2 分钟。

前言

是python的一个微型web框架,目前正在学习一个使用bottle的开源项目源码。刚好接触到获取客户端机子的本机IP和主机名,特此记录一下。

项目地址:

获取IP和HOST

使用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/

你可能感兴趣的文章
阻塞队列
查看>>
linux的基础知识
查看>>
接口技术原理
查看>>
五大串口的基本原理
查看>>
PCB设计技巧与注意事项
查看>>
linux进程之间通讯常用信号
查看>>
main函数带参数
查看>>
PCB布线技巧
查看>>
关于PCB设计中过孔能否打在焊盘上的两种观点
查看>>
PCB反推理念
查看>>
京东技术架构(一)构建亿级前端读服务
查看>>
php 解决json_encode中文UNICODE转码问题
查看>>
LNMP 安装 thinkcmf提示404not found
查看>>
PHP empty、isset、innull的区别
查看>>
apache+nginx 实现动静分离
查看>>
通过Navicat远程连接MySQL配置
查看>>
phpstorm开发工具的设置用法
查看>>
Linux 系统挂载数据盘
查看>>
Git基础(三)--常见错误及解决方案
查看>>
Git(四) - 分支管理
查看>>