python 使用socket 获得本机主机名和IP

简介:

Windows 10 平台代码:

1
2
3
4
5
6
7
8
9
10
import  socket
hostname  = socket.gethostname()
print (  "Host name: %s"  % hostname )
sysinfo = socket.gethostbyname_ex( hostname )
ip_addr = sysinfo[2]
ip_addr1 = ip_addr[0]
ip_addr2 = ip_addr[1]
ip_addr3 = ip_addr[2]
ip_addr4 = ip_addr[3]
print( "IP Address: %s"  %ip_addr1,ip_addr2,ip_addr3,ip_addr4)


运行结果:

备注:因有虚拟机所以IP比较多

wKioL1mRZyfyDrfzAAA2sBpXd1M167.jpg


Linux 平台代码:

1
2
3
4
5
6
7
8
import  socket
hostname  = socket.gethostname()
print (  "Host name: %s"  % hostname )
sysinfo = socket.gethostbyname_ex( hostname )
ip_addr = sysinfo[2]
ip_addr1 = ip_addr[0]
ip_addr2 = ip_addr[1]
print( "IP Address: %s"  %ip_addr1,ip_addr2)

备注:

经过测试验证socket 是通过解析主机名才能成功也就是这样才可以不然会报错

[root@ocbsap01 sysadmin]# cat /etc/hosts

192.168.10.128  ocbsap01

10.10.10.128    ocbsap01

192.168.10.129  ocbsweb01

192.168.10.130  ocbsweb02

192.168.10.131  ocbsdb01


代码解释:

socket.gethostname()      # 获取主机名

socket.gethostbyname_ex() # 在多网卡的情况下通过主机名获取IP地址,IP地址结果为列表形式,print时候主机格式转化,或者队列取值才行




本文转自 yuri_cto 51CTO博客,原文链接:http://blog.51cto.com/laobaiv1/1956093,如需转载请自行联系原作者
相关文章
|
1天前
|
网络协议 Python
网络世界的建筑师:Python Socket编程基础与进阶,构建你的网络帝国!
【7月更文挑战第26天】在网络的数字宇宙中,Python Socket编程是开启网络世界大门的钥匙。本指南将引领你从基础到实战,成为网络世界的建筑师。
6 2
|
1天前
|
消息中间件 网络协议 网络安全
Python Socket编程:打造你的专属网络通道,基础篇与进阶篇一网打尽!
【7月更文挑战第26天】在网络编程领域,Python以简洁语法和强大库支持成为构建应用的首选。Socket编程为核心,实现计算机间的数据交换。
8 1
|
1天前
|
消息中间件 网络协议 网络安全
解锁Python Socket新姿势,进阶篇带你玩转高级网络通信技巧!
【7月更文挑战第26天】掌握Python Socket后,探索网络通信高级技巧。本指南深化Socket编程理解,包括非阻塞I/O以提升并发性能(示例使用`select`),SSL/TLS加密确保数据安全,以及介绍高级网络协议库如HTTP、WebSocket和ZeroMQ,简化复杂应用开发。持续学习,成为网络通信专家!
3 0
|
2月前
|
数据采集 安全 数据安全/隐私保护
python怎么获取免费代理IP
python怎么获取免费代理IP
90 0
|
2月前
|
Python
python代理ip关于设置proxies的问题
python代理ip关于设置proxies的问题
|
2月前
|
存储 API Python
python之代理ip的配置与调试
python之代理ip的配置与调试
|
2月前
|
存储 关系型数据库 MySQL
Python搭建代理IP池实现存储IP的方法
Python搭建代理IP池实现存储IP的方法
|
2月前
|
存储 Python
用Python实现批量下载文件——代理ip排除万难
用Python实现批量下载文件——代理ip排除万难
|
2月前
|
存储 数据处理 Python
Python构造代理IP池提高访问量
Python构造代理IP池提高访问量