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,如需转载请自行联系原作者
相关文章
|
4月前
|
数据采集 机器学习/深度学习 边缘计算
Python爬虫动态IP代理报错全解析:从问题定位到实战优化
本文详解爬虫代理设置常见报错场景及解决方案,涵盖IP失效、403封禁、性能瓶颈等问题,提供动态IP代理的12种核心处理方案及完整代码实现,助力提升爬虫系统稳定性。
320 0
|
5月前
|
数据采集 机器学习/深度学习 Web App开发
Python爬虫如何应对贝壳网的IP封禁与人机验证?
Python爬虫如何应对贝壳网的IP封禁与人机验证?
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
570 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
Kubernetes 网络协议 Python
Python网络编程:从Socket到Web应用
在信息时代,网络编程是软件开发的重要组成部分。Python作为多用途编程语言,提供了从Socket编程到Web应用开发的强大支持。本文将从基础的Socket编程入手,逐步深入到复杂的Web应用开发,涵盖Flask、Django等框架的应用,以及异步Web编程和微服务架构。通过本文,读者将全面了解Python在网络编程领域的应用。
200 1
|
消息中间件 监控 网络协议
Python中的Socket魔法:如何利用socket模块构建强大的网络通信
本文介绍了Python的`socket`模块,讲解了其基本概念、语法和使用方法。通过简单的TCP服务器和客户端示例,展示了如何创建、绑定、监听、接受连接及发送/接收数据。进一步探讨了多用户聊天室的实现,并介绍了非阻塞IO和多路复用技术以提高并发处理能力。最后,讨论了`socket`模块在现代网络编程中的应用及其与其他通信方式的关系。
990 3
|
12月前
|
数据采集 API 定位技术
Python技术进阶:动态代理IP的跨境电商解决方案
Python技术进阶:动态代理IP的跨境电商解决方案
|
运维 安全 网络协议
Python 网络编程:端口检测与IP解析
本文介绍了使用Python进行网络编程的两个重要技能:检查端口状态和根据IP地址解析主机名。通过`socket`库实现端口扫描和主机名解析的功能,并提供了详细的示例代码。文章最后还展示了如何整合这两部分代码,实现一个简单的命令行端口扫描器,适用于网络故障排查和安全审计。
260 0
|
网络协议 测试技术 网络安全
Python编程-Socket网络编程
Python编程-Socket网络编程
149 0
|
网络协议 开发者 Python
深度探索Python Socket编程:从理论到实践,进阶篇带你领略网络编程的魅力!
【7月更文挑战第25天】在网络编程中, Python Socket编程因灵活性强而广受青睐。本文采用问答形式深入探讨其进阶技巧。**问题一**: Socket编程基于TCP/IP,通过创建Socket对象实现通信,支持客户端和服务器间的数据交换。**问题二**: 提升并发处理能力的方法包括多线程(适用于I/O密集型任务)、多进程(绕过GIL限制)和异步IO(asyncio)。**问题三**: 提供了一个使用asyncio库实现的异步Socket服务器示例,展示如何接收及响应客户端消息。通过这些内容,希望能激发读者对网络编程的兴趣并引导进一步探索。
202 4
|
开发者 Python
Python Socket编程:不只是基础,更有进阶秘籍,让你的网络应用飞起来!
【7月更文挑战第25天】在网络应用蓬勃发展的数字时代,Python凭借其简洁的语法和强大的库支持成为开发高效应用的首选。本文通过实时聊天室案例,介绍了Python Socket编程的基础与进阶技巧,包括服务器与客户端的建立、数据交换等基础篇内容,以及使用多线程和异步IO提升性能的进阶篇。基础示例展示了服务器端监听连接请求、接收转发消息,客户端连接服务器并收发消息的过程。进阶部分讨论了如何利用Python的`threading`模块和`asyncio`库来处理多客户端连接,提高应用的并发处理能力和响应速度。掌握这些技能,能使开发者在网络编程领域更加游刃有余,构建出高性能的应用程序。
137 3

推荐镜像

更多