#!/usr/bin/env python3
import sys
import subprocess

# l'interface utilisée par WSL
DEV = 'eth0'

# récupérer le couple addresse/cidr avec ip a
command = f"ip -br -4 a show dev {DEV}"
result = subprocess.run(command.split(), stdout=subprocess.PIPE, universal_newlines=True)
addr_cidr = result.stdout.split()[-1]

(addrString, cidrString) = addr_cidr.split('/')

# séparer l'adresse en octets et transformer le cidr en entier
addr = addrString.split('.')
cidr = int(cidrString)

# calculer le mask à partir du cidr
_mask = [0, 0, 0, 0]
for i in range(cidr):
    _mask[i//8] = _mask[i//8] + (1 << (7 - i % 8))

# calculer l'adresse de réseau
_net = [(int(addr[i]) & _mask[i]) for i in range(4)]

# la passerelle
_gateway = _net[0:3] + [1]
        
mask = ".".join(map(str, _mask))
gateway = ".".join(map(str, _gateway))
net = ".".join(map(str, _net))

print(f"route add {net} mask {mask} {gateway}")