11

I have the following problem: I have a server with a rather dynamic network configuration and need to configure routes on it with the IF parameter:

route add  ... mask ... ... if ?

Is there a reliable way, manual and or programmatical, to get that interface number if I know just about everything else about that adaptor?

18

You can see that info also when you run the route print command. It's the first thing displayed. The index is the first column

===========================================================================
Interface List
 13... ......Bluetooth Device (Personal Area Network)
 10... ......Intel(R) 82566MM Gigabit Network Connection
 11... ......Intel(R) Wireless WiFi Link 4965AG
 17... ......VMware Virtual Ethernet Adapter for VMnet1
 18. . ......VMware Virtual Ethernet Adapter for VMnet8
10

The following command displays the list of interfaces:

netsh int ipv4 show interfaces

  • 1
    This works but you should expound on your answer a little to make sure it isn't flagged. – TheCleaner Jan 15 '15 at 14:10
7

Since you know everything else about the adaptor, and since you are using Server 2008, you can (and should) just add your routes with netsh using the interface name:

netsh int ipv4 add route <remote netid>/<remote netmask> <interface name> <next hop>

Use of the route command is generally deprecated in 2008+.

  • I wouldn't say it is depreciated.. it's just more recommended to use netsh now. :) BTW, your command should be "netsh interface ipv4 add route" – Rex May 24 '13 at 18:28
  • Yeah was moving too quickly, command edited:) While Microsoft rarely uses the term "deprecated", I believe their term was basically "It is recommended that netsh be used instead of route" moving forward. I've personally seen some issues with clusters when using the route command, in which routing problems occur on failover. – phoebus May 24 '13 at 18:45
  • 2
    Note that the adatper name may be different from the one in route print and using the wrong name will result with the "helpful" error message: "The filename, directory name, or volume label syntax is incorrect.". use netsh interface ipv4 show interfaces to find the actual name. – ET-CS Mar 23 '16 at 0:20
3

You can using PowerShell:

Get-WMIObject Win32_networkadapter | Select-Object Name, AdapterType, InterfaceIndex | Format-List
  • This returns numbers, but they don't match with the route print output. The DeviceID values also don't match. (And no, it's not simply an off-by-one issue.) – Jon Seigel Sep 24 '15 at 15:31
  • According to the MS blog, the route command returns the adapter priority. This command returns the InterfaceIndex. see here: blogs.technet.microsoft.com/networking/2015/08/14/… – bobpaul May 25 '18 at 16:09

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.