python 获取windows上 网络连接信息 ip dhcp dns gateway

import socket
import os
import re
def get_host_ip():
    """
    查询本机ip地址
    :return:
    """
    try:
        s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
        s.connect(('8.8.8.8',80))
        # 能提取出本机ip 通过本机ip提取出其他设置
        ip = s.getsockname()[0]
        # ip地址、子网掩码、默认网关、dns服务器
        baseinfo = os.popen('ipconfig/all')
        tempstream = baseinfo._stream
        infostrs = tempstream.buffer.read().decode(encoding='gbk')
        infolists = infostrs.splitlines()
        validinfolist = []
        for index, value in enumerate(infolists):
            if ip in value:
                validinfolist = infolists[index: index+11]
        pattern = re.compile(r'\d+.\d+.\d+.\d+')
        for info in validinfolist:
            if '子网掩码' in info or 'Mask' in info :
                subnetmask = re.findall(pattern, info)[0]
            if '默认网关' in info or 'ateway' in info :
                defgateway = re.findall(pattern, info)[0]
            if '默认网关' in info or 'ateway' in info :
                defgateway = re.findall(pattern, info)[0]
            if 'DHCP 服务器' in info or 'DHCP Server' in info:
                dhcpserver = re.findall(pattern, info)[0]
            if 'DNS'in info :
                dnsserver = re.findall(pattern, info)[0]
        print(subnetmask)
        print(defgateway)
        print(defgateway)
        print(dnsserver)
    finally:
        s.close()

    return ip


if __name__ == '__main__':
    print(get_host_ip())
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值