获取本机指定网段的IP地址
接口:socket.gethostbyname_ex(hostname)
多网卡的PC,使用socket.gethostbyname_ex(hostname)接口获取的是一个含计算机名、多个ip地址的triple,要怎样把属于1网段的IP定位到并提取出来呢?请看下面的示例:
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
__author__ = 'Tank Li'
import socket
def get_ip():
"""
多网卡PC,获取其中1网段的ip地址
:return:ip
"""
hostname = socket.gethostname() # 获取本机计算机名
ipTriple = socket.gethostbyname_ex(hostname) # 获取本机所有IP地址
print("本机计算机名及所有ip地址为"+str(ipTriple))
ips = list(ipTriple[2:])
ip = ""
for i in ips:
ipList = list(i)
for ip1 in ipList:
if ip1[7:10] == ".1.":
ip += ip1
print("本机1网段的IP地址为:" + ip)
return ip
if __name__ == '__main__':
get_ip()
代码有点low, 欢迎各位读者指正!