python 读取文件的网关_Python:在Linux中获取本地接口/ IP地址的默认网关

1586010002-jmsa.png

On Linux, how can I find the default gateway for a local ip address/interface using python?

I saw the question "How to get internal IP, external IP and default gateway for UPnP", but the accepted solution only shows how to get the local IP address for a network interface on windows.

Thanks.

解决方案

For those people who don't want an extra dependency and don't like calling subprocesses, here's how you do it yourself by reading /proc/net/route directly:

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("

I don't have a big-endian machine to test on, so I'm not sure whether the endianness is dependent on your processor architecture, but if it is, replace the < in struct.pack('

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值