Windows'ta komut satırında belirli bir yol için ağ geçidi nasıl elde edilir?


0

Windows'ta (bu durumda Win7) belirli bir yol için ağ geçidini (arabirim değil) yazdırmanın bir yolu var mı? Bir OpenVPN _up betiğine dinamik olarak bir rota eklemem gerekiyor, ancak bağlantı kurulduğunda ağ geçidi dinamik olarak atandığından, onu statik olarak yazamıyorum.

Potansiyel olarak _up betikleri için bazı ortam değişkenleri (route_vpn_gateway?) De mevcut gibi görünüyor, ancak onları çalıştırmayı başaramadım.

Sanırım GnuWin araçlarından awk / grep kullanıp 'rotalar' çıktısını ayrıştırmalıyım, ama belki de daha temiz / kolay bir yol var?


Bu işe yarar ( GnuWin32 yardımcı programlarını kullanarak ), ancak [gerçekten] çirkin: D routes | grep -P "192\.168\.1\.0\s+255\.255\.255\.0\s+(\d+\.\d+\.\d+\.\d+)" | awk "{print $3}" (Söz konusu VPN bağlantısı 192.168.1.0/24 adres alanına giden bir yolu iter.) Belki birisinin soruma daha şık bir çözümü olabilir. :)
Ville

Yukarıdaki grep kullanma / awk ı ile geldi bu . Çalışıyor, ama dediğim gibi, çok çirkin ve neredeyse temiz bir yol olduğuna eminim - muhtemelen _up betiği için mevcut verilere erişerek. Kimse? Kimse?
Ville,

Yanıtlar:


0

Powershell'i kolayca kullanabilirsiniz :

PS C:\Users\mmoor> $RouteTable = Get-WmiObject Win32_IP4RouteTable
PS C:\Users\mmoor> $RouteTable[0].Mask
0.0.0.0
PS C:\Users\mmoor> $RouteTable[0].Destination
0.0.0.0
PS C:\Users\mmoor> $RouteTable[0].NextHop
<Gateway Address>

Bu w / running ROUTE PRINT'i bir windows komut satırından karşılaştırın. Powershell ayrıntılı bir betik dilidir, bu yüzden openvpn client config betiğini kolayca güncelleyebilirsiniz, bunun yapmaya çalıştığınızın bu olduğunu farz ediyorum. Aynı zamanda nesne odaklı da.

Aşağıdaki gibi bir şey yapardım:

1) Yönlendirme tablasını wmi'den tut (yukarıda gösterilmiştir)

2) Her Yönlendirme tablosu girişi bir dizideki bir giriştir (yukarıdaki değişkenden sonra [0])

3) Aradığınız IP Adresini bulana kadar dizide foreach yapın.

4) NextHop üyesini RouteTable girişinden alın ve saklayın

5) OpenVPN client config dosyasını okuyun (powershell'de get-içerik kullanarak dosyanın bir dizge dizisini yaratacaktır)

6) Değiştirmeniz gereken dizeyi bulana kadar dizge dizisini yineleyin, ardından dizeyi değiştirin ve dosyayı kaydedin.

Umarım bu size doğru yöne işaret eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.