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比较多
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,如需转载请自行联系原作者