PDA

View Full Version : Parse ipconfig


Snake1980
24-04-2009, 14:52
Ciao a tutti,
avrei bisogno di un piccolo aiuto.
In un file .bat avrei bisogno di reperire il default gateway di una delle tre interfacce di rete che ho.

Ad esempio...questo è il risultato dell'ipconfig:

C:\Documents and Settings\Administrator>ipconfig

Windows IP Configuration


Ethernet adapter Wireless Network Connection:

Media State . . . . . . . . . . . : Media disconnected

Ethernet adapter Hamachi:

Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 5.xxx.xxx.xx
Subnet Mask . . . . . . . . . . . : 255.0.0.0
Default Gateway . . . . . . . . . :

Ethernet adapter LAN Casa:

Connection-specific DNS Suffix . : pippo
IP Address. . . . . . . . . . . . : 10.xxx.xxx.xxx
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.222.333.444

Ethernet adapter Cisco VPN:

Connection-specific DNS Suffix . : cs.pippo
IP Address. . . . . . . . . . . . : 172.111.111.111
Subnet Mask . . . . . . . . . . . : 255.255.254.0

Avrei bisogno che lo script (o la riga di comando) mi restituisca il default gateway della scheda di rete "LAN Casa":

10.222.333.444

Qualcuno di voi sa come fare questa operazione da linea di comando ?

Grazie.

gugoXX
24-04-2009, 15:31
Fare il PARSE su linea di comando non lo so fare.
(E a dirla tutta mi sembra anche un po' un'attivita' da Geek-style Unix command-line addicted, qualcosa da persone in camice bianco con la barba e qualche caratteristica fisica particolare come orecchini smisurati, oppure catena con crocifisso in scala 1:1 al collo, oppure occhiali da 20 diottrie colorati a vene marroncine, etc. Scherzo)

In C# farei cosi', senza parsare nulla


NetworkInterface[] nis = NetworkInterface.GetAllNetworkInterfaces();
IPAddress Target = nis.Where(ni => ni.Description == "Ethernet Adapter LAN Casa")
.FirstOrDefault() // Possono esserci piu' Interface con questo nome
.GetIPProperties() // Prendo le proprieta' IP
.GatewayAddresses // Che contiene gli indirizzi dei Gateway (Possono essere piu' d'uno)
.FirstOrDefault() // Prendo il primo indirizzo
.Address; // Mi interessa la sua rappresentazione IP

Console.WriteLine(Target);

Snake1980
24-04-2009, 15:58
:D :D :D :D

Grazie per la dritta...
non ho mai programmato in C#, ma potrebbe essere molto interessante come inizio ;)