Come impostare il percorso tramite l'indirizzo mac su Windows?


4

Questo è il modo in cui molti di noi impostano un percorso su Windows:

route add 10.10.0.0 mask 255.255.0.0 10.77.77.1 route se 58 -p

Nella riga di comando 58 è l'indice di interfaccia (IF) e la maggior parte delle volte il suo valore è costante per una specifica scheda di interfaccia di rete. Pertanto è possibile creare un file batch CMD per automatizzare l'eliminazione e la reimpostazione di tutti i percorsi di cui ha bisogno.

Tuttavia, nel mio caso, ho una scheda NIC Gigabit Ethernet da USB 3.0 a porta doppia e i suoi IF cambiano ogni volta che mi collego alla porta USB del mio notebook. Quello che faccio, basta aprire un cmd shell, ottieni gli ID interfaccia attuali dando stampa del percorso , quindi aprire il file batch CMD con l'editor di testo e modificare tutto il vecchio IF (es: 58 ) valori, salva e chiudi e infine esegui il file batch CMD sulla shell.

Se esiste un modo per impostare un percorso solo conoscendo l'indirizzo MAC, non a seconda dell'IF, allora il problema è risolto :) La soluzione potrebbe essere un semplice comando CMD a una riga ( imposta il percorso per MAC ), o forse prima ottenere l'IF per MAC e impostare il percorso con IF ( impostare il percorso per IF del MAC ).

Qualsiasi aiuto è molto apprezzato!

Risposte:


2

Lo snippet di codice successivo mostra come fare ottenere il FI da MAC utilizzando FOR /F ciclo continuo contro il risultato di WMIC (comando Strumentazione gestione Windows) :

@ECHO OFF
SETLOCAL EnableExtensions DisableDelayedExpansion

set "_maca=AA:AA:AA:AA:AA:AA"            change to match your circumstances
set "_geta=InterfaceIndex^, MACAddress"    to keep next lines in reasonable length
set "_ifin="                               to ensure that `_ifin` variable is empty

for /F "tokens=1,*" %%G in ('
    WMIC NIC where "MACAddress='%_maca%'" get %_geta% 2^>NUL ^| find ":"
                            ') do set "_ifin=%%~G"

if defined _ifin (
        rem route command block here:
    route add 10.10.0.0 mask 255.255.0.0 10.77.77.1 if %_ifin% -p
) else (
    echo %_maca%: No Instance^(s^) Available.
)

risorse (lettura richiesta):


Grazie mille @JosefZ, questa è la soluzione al mio problema!
uzeyirs
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.