#!/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}")