首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ipconfig python获取详细信息

从ipconfig python获取详细信息
EN

Stack Overflow用户
提问于 2022-01-10 15:01:09
回答 3查看 145关注 0票数 -2

我正在寻找一个简短的命令,以获得一个网络接口ip地址的名称,在python。例如,它不适用于socket.getaddr(),这是我的详细信息:

我想找个乐子所以:

x=func('vEthernet (VIC Ethernet)')

所以x是10.10.255.254,我不想运行ipconfig并解析它

谢谢

EN

回答 3

Stack Overflow用户

发布于 2022-01-10 15:08:53

您可以使用此函数获取主IP:

代码语言:javascript
复制
import socket
def get_ip():
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.settimeout(0)
    try:
        # doesn't even have to be reachable
        s.connect(('10.255.255.255', 1))
        IP = s.getsockname()[0]
    except Exception:
        IP = '127.0.0.1'
    finally:
        s.close()
    return IP

要获得所有ips,您可以使用网面

代码语言:javascript
复制
from netifaces import interfaces, ifaddresses, AF_INET
for ifaceName in interfaces():
    addresses = [i['addr'] for i in ifaddresses(ifaceName).setdefault(AF_INET, [{'addr':'No IP addr'}] )]
    print(' '.join(addresses))

产出:

代码语言:javascript
复制
No IP addr
No IP addr
No IP addr
No IP addr
192.168.0.104
127.0.0.1
票数 0
EN

Stack Overflow用户

发布于 2022-01-10 15:12:56

它以元组的形式返回IP地址和端口。

代码语言:javascript
复制
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
票数 0
EN

Stack Overflow用户

发布于 2022-01-10 20:25:42

替罪羊模块有它的功能- get_if_addr(iface_name)谢谢大家

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70654437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档