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)))
Python: получить шлюз по умолчанию для локального интерфейса/IP-адреса в Linux