<> wrote in message
news:eebf2734-a9da-4580-9874-...
> > I need to set the IP address of the network adapter given it's MAC
> > address.
>
> > To do this I use GetAdaptersInfo API from IPHLPAPI.DLL to enumerate
> > network adapters and then compare IP_ADAPTER_INFO.Address to the MAC
> > address I am looking for. Once I get a match, I extract
> > IP_ADAPTER_INFO.AdapterName and then I pass it tonetshcommand as
> > follows
>
> >netshinterface ip set address IP_ADAPTER_INFO.AdapterName static
> > 10.6.36.159 255.255.0.0 10.6.0.1 1
>
> > The IP_ADAPTER_INFO.AdapterName is in the form of a GUID viz.
> > {650B810A-0C51-4147-B1C4-0076A36B1C5A}
>
> > This all works fine on Windows 2000/2003/XP. However onVista, it
> > fails with the following error.
>
> > "The filename, directory name, or volume label syntax is incorrect."
>
> > It seems thatvistaonly supports specifying connection name viz.
> > "Local Area Connection" and is not backward compatible.
>
> > Now the question I have is:
>
> > Is there any other way to map the MAC address OR AdapterName in GUID
> > format to connection name? I know that its possible to do so through
> > WMI, I want avoid using WMI. Since WMI is able to provide this
> > mapping, there must be some way to do it.
>
> I'm not sure but I think you'd need to add the ipv4 parameter in there
> somewhere. At a command prompt type "netshinterface ?" for details.
>
> --
> Kerry Brown
> Microsoft MVP - Shell/Userhttp://www.vistahelp.ca/phpBB2/- Hide quoted
> text -
>
> - Show quoted text -
Hello,
I tried specifying ipv4 instead of ip as follows, however, it still
failed with the same error.
netsh interface ipv4 set address IP_ADAPTER_INFO.AdapterName static
10.6.36.159 255.255.0.0 10.6.0.1 1
I think that "netsh interface ip" is same as "netsh interface ipv4"
i.e. The default is always ipv4.
However, I noticed one interesting thing. On vista, one can specify
interface name OR interface index to "netsh interface ip set address"
command. So when I used following command, it worked.
netsh interface ip set address IP_ADAPTER_INFO.Index static
10.6.36.159 255.255.0.0 10.6.0.1 1
So basically I specified IP_ADAPTER_INFO.Index instead of
IP_ADAPTER_INFO.AdapterName and it worked. However, I am not sure if
this is the right way to do it?
I find adapter and interface terms being used interchangably and I
find it very confusing.
Interesting. Have you tried this on an XP computer to see if it's backwards
compatible?
--
Kerry Brown
Microsoft MVP - Shell/User
http://www.vistahelp.ca/phpBB2/