First obvious candidate would be a static configured host IP address with the "media disconnected", i.e. no network cable.
Let's see how much information Windows grants the typical CJ.
We see that the adapter exists and absolutely no indication of an address other than DHCP is disabled. Let's look at the results of IPv4 adapter enumeration using the GetAdaptersInfo API.Ethernet adapter Local Area Connection: Media State . . . . . . . . . . . : Media disconnected Connection-specific DNS Suffix . : hk.miru.hk Description . . . . . . . . . . . : Broadcom NetXtreme Gigabit Ethernet Physical Address. . . . . . . . . : C4-2C-03-21-78-AB DHCP Enabled. . . . . . . . . . . : No Autoconfiguration Enabled . . . . : Yes
The Ethernet adapter is index #11 and the Windows 2000 API returns the host IP address as 0.0.0.0. Let's look at the Windows XP API, GetAdaptersAddresses, excluding IPv6 addressing.Info: #13 name {12D5DC53-E214- IPv4 0.0.0.0 scope 0 status UP loop NO b/c YES m/c YES Info: #11 name {61F5BC1C-1D95- IPv4 0.0.0.0 scope 0 status UP loop NO b/c YES m/c YES Info: #10 name {FFF6B15A-5B5C- IPv4 10.208.0.104 scope 0 status UP loop NO b/c YES m/c YES Info: #19 name {D8ED3DA1-9FAC- IPv4 192.168.56.1 scope 0 status UP loop NO b/c YES m/c YES
Windows is returning two different interfaces for the adapter, one is a IPv4 link-local prefixed address, 169.254.228.116 and the other is the configured static host IP address 172.16.0.1.Info: #13 name {12D5DC53-E214- IPv4 169.254.140.145 scope 0 status DOWN loop NO b/c NO m/c YES Info: #11 name {61F5BC1C-1D95- IPv4 169.254.228.116 scope 0 status DOWN loop NO b/c NO m/c YES Info: #11 name {61F5BC1C-1D95- IPv4 172.16.0.1 scope 0 status DOWN loop NO b/c NO m/c YES Info: #10 name {FFF6B15A-5B5C- IPv4 10.208.0.104 scope 0 status UP loop NO b/c NO m/c YES Info: #19 name {D8ED3DA1-9FAC- IPv4 192.168.56.1 scope 0 status UP loop NO b/c NO m/c YES Info: #1 name {846EE342-7039- IPv4 127.0.0.1 scope 0 status UP loop YES b/c NO m/c YES
In conclusion we find that Windows cannot provide the netmask or network prefix for any adapter that is not marked "operationally up". The older Windows 2000 API cannot even report the IP address of such adapters, the newer Windows XP API fairs a little better but we can only determine the prefix of IPv4 link-local addresses without additional information.
No comments:
Post a Comment