当前位置: 首页 > 面试题库 >

Python:在Linux中获取本地接口/ IP地址的默认网关

周作人
2023-03-14
问题内容

在Linux上,如何使用python查找本地IP地址/接口的默认网关?

我看到了“如何获取UPnP的内部IP,外部IP和默认网关”的问题,但是公认的解决方案仅显示了如何获取Windows网络接口的本地IP地址。

谢谢。


问题答案:

对于那些不想额外依赖并且不喜欢调用子流程的人,可以通过/proc/net/route直接阅读以下内容来自己做:

import socket, struct

def get_default_gateway_linux():
    """Read the default gateway directly from /proc."""
    with open("/proc/net/route") as fh:
        for line in fh:
            fields = line.strip().split()
            if fields[1] != '00000000' or not int(fields[3], 16) & 2:
                continue

            return socket.inet_ntoa(struct.pack("<L", int(fields[2], 16)))

我没有要测试的大端字节序计算机,因此我不确定字节序是否取决于您的处理器体系结构,但是如果是,请替换为<in struct.pack('<L', ...=以便代码使用计算机的本机字节序。



 类似资料:
  • 问题内容: 如何从C代码获取Linux上接口的IPv4地址? 例如,我想获取分配给eth0的IP地址(如果有)。 问题答案: 尝试这个: 代码示例是从这里获取的。

  • 问题内容: 有没有办法使用libpcap在Linux中获取接口的IP地址? 我发现了这个, 获取Linux上一个接口的IP地址,但这不使用pcap。 此外,在PCAP例子是说,像这应该得到你的IP,但它给你的网络地址。 问题答案: 使用功能: 输出:

  • 问题内容: 我的机器上运行了一个简单的node.js程序,我想获取运行该程序的PC的本地IP地址。如何使用node.js获得它? 问题答案:

  • 我希望在连接到wifi网络时,在运行我的应用程序的手机上获取用户的本地IPv4地址。使用以下代码: 我可以得到一些接近IPv4地址的信息,但与命令行中的IPv4地址相比,它并不完全相同。有更好的办法吗?我知道formatIpAddress已被弃用,但在我找到获取IPv4地址的方法之前,我暂时不太担心这个问题。 编辑: 我发现手机wifi设置中的ip地址是我在使用建议的解决方案获取ip地址时得到的。

  • 本文向大家介绍winform C#获得Mac地址,IP地址,子网掩码,默认网关的实例,包括了winform C#获得Mac地址,IP地址,子网掩码,默认网关的实例的使用技巧和注意事项,需要的朋友参考一下 1.  添加程序集 2.  引入命名空间 using System.Management; 3.  方法 以上这篇winform C#获得Mac地址,IP地址,子网掩码,默认网关的实例就是小编分享

  • 问题内容: 我想获取计算机的IP地址。我使用了下面的代码,但是返回了。 我想获取IP地址(例如),而不是回送地址。 问题答案: 您需要遍历所有网络接口 播放(取自util / helper.go)