2013-07-24 5 views
1

У меня есть приложение, которое вызывает gethostbyname и отображает первый IP-адрес в h_addr_list. На машине, на которой установлена ​​VMware и имеет несколько виртуальных адаптеров, мое приложение всегда возвращает IP-адрес одного из виртуальных адаптеров . Я всегда хочу, чтобы мое приложение дало мне IP-адрес физического адаптера.Как изменить список адресов IP-адресов, возвращенный gethostbyname?

Поэтому я хочу изменить порядок своих виртуальных адаптеров таким образом, чтобы IP-адрес физического адаптера был первым в списке. Я перепробовал все предложения в -

http://support.microsoft.com/kb/171320

http://support.microsoft.com/kb/894564/en-us#appliesto

Ни один из них не работал. Я также перезапустил свою систему после внесения изменений. Есть ли другой способ изменить порядок сетевых адаптеров? Предполагая, что нет, как я могу обеспечить через свой код, что я всегда получаю IP-адрес моего физического адаптера?

Моя ОС Виндоус 8. Вот мой IPCONFIG/все выходные -

Windows IP Configuration 

    Host Name . . . . . . . . . . . . : Win8x64D3b 
    Primary Dns Suffix . . . . . . . : 
    Node Type . . . . . . . . . . . . : Hybrid 
    IP Routing Enabled. . . . . . . . : No 
    WINS Proxy Enabled. . . . . . . . : No 
    DNS Suffix Search List. . . . . . : NESSINBLR.COM 

Ethernet adapter Ethernet: 

    Connection-specific DNS Suffix . : NESSINBLR.COM 
    Description . . . . . . . . . . . : Intel(R) 82566DM-2 Gigabit Network Connec 
tion 
    Physical Address. . . . . . . . . : 00-0F-FE-E7-00-A6 
    DHCP Enabled. . . . . . . . . . . : Yes 
    Autoconfiguration Enabled . . . . : Yes 
    Link-local IPv6 Address . . . . . : fe80::bc7c:6cf5:e8ed:c874%12(Preferred) 
    IPv4 Address. . . . . . . . . . . : 172.26.82.152(Preferred) 
    Subnet Mask . . . . . . . . . . . : 255.255.252.0 
    Lease Obtained. . . . . . . . . . : Wednesday, June 19, 2013 2:55:44 AM 
    Lease Expires . . . . . . . . . . : Friday, June 21, 2013 2:55:38 AM 
    Default Gateway . . . . . . . . . : 172.26.80.1 
    DHCP Server . . . . . . . . . . . : 172.26.116.52 
    DHCPv6 IAID . . . . . . . . . . . : 251662334 
    DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-18-3D-50-E5-00-0F-FE-E7-00-A6 

    DNS Servers . . . . . . . . . . . : 172.26.82.152 
    Primary WINS Server . . . . . . . : 172.26.82.152 
    NetBIOS over Tcpip. . . . . . . . : Enabled 

Ethernet adapter VMware Network Adapter VMnet1: 

    Connection-specific DNS Suffix . : 
    Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet 
1 
    Physical Address. . . . . . . . . : 00-50-56-C0-00-01 
    DHCP Enabled. . . . . . . . . . . : No 
    Autoconfiguration Enabled . . . . : Yes 
    Link-local IPv6 Address . . . . . : fe80::d59f:e785:bc67:74c4%17(Preferred) 
    IPv4 Address. . . . . . . . . . . : 192.168.3.1(Preferred) 
    Subnet Mask . . . . . . . . . . . : 255.255.255.0 
    Default Gateway . . . . . . . . . : 
    DHCPv6 IAID . . . . . . . . . . . : 251678806 
    DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-18-3D-50-E5-00-0F-FE-E7-00-A6 

    DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1 
             fec0:0:0:ffff::2%1 
             fec0:0:0:ffff::3%1 
    NetBIOS over Tcpip. . . . . . . . : Enabled 

Ethernet adapter VMware Network Adapter VMnet8: 

    Connection-specific DNS Suffix . : 
    Description . . . . . . . . . . . : VMware Virtual Ethernet Adapter for VMnet 
8 
    Physical Address. . . . . . . . . : 00-50-56-C0-00-08 
    DHCP Enabled. . . . . . . . . . . : No 
    Autoconfiguration Enabled . . . . : Yes 
    Link-local IPv6 Address . . . . . : fe80::3d00:a19f:32b5:5c52%18(Preferred) 
    IPv4 Address. . . . . . . . . . . : 192.168.5.1(Preferred) 
    Subnet Mask . . . . . . . . . . . : 255.255.255.0 
    Default Gateway . . . . . . . . . : 
    DHCPv6 IAID . . . . . . . . . . . : 268456022 
    DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-18-3D-50-E5-00-0F-FE-E7-00-A6 

    DNS Servers . . . . . . . . . . . : fec0:0:0:ffff::1%1 
             fec0:0:0:ffff::2%1 
             fec0:0:0:ffff::3%1 
    NetBIOS over Tcpip. . . . . . . . : Enabled 

Tunnel adapter isatap.{A80B07CA-01EF-411D-BB81-A4E2F06D588B}: 

    Media State . . . . . . . . . . . : Media disconnected 
    Connection-specific DNS Suffix . : 
    Description . . . . . . . . . . . : Microsoft ISATAP Adapter 
    Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0 
    DHCP Enabled. . . . . . . . . . . : No 
    Autoconfiguration Enabled . . . . : Yes 

Tunnel adapter isatap.NESSINBLR.COM: 

    Media State . . . . . . . . . . . : Media disconnected 
    Connection-specific DNS Suffix . : NESSINBLR.COM 
    Description . . . . . . . . . . . : Microsoft ISATAP Adapter #2 
    Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0 
    DHCP Enabled. . . . . . . . . . . : No 
    Autoconfiguration Enabled . . . . : Yes 

Tunnel adapter isatap.{8D6220B3-8F39-4514-8C4E-C79D8263C2B8}: 

    Media State . . . . . . . . . . . : Media disconnected 
    Connection-specific DNS Suffix . : 
    Description . . . . . . . . . . . : Microsoft ISATAP Adapter #3 
    Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0 
    DHCP Enabled. . . . . . . . . . . : No 
    Autoconfiguration Enabled . . . . : Yes 

Мое приложение всегда возвращает 192.168.5.1 вместо 172.26.82.152

Пожалуйста, помогите.

ответ

1

Я видел нечто подобное. Это не полностью отвечает на ваш вопрос, но это то, что у меня есть.

remoteHost = gethostbyname(ac); 
int i = 0; 
if (remoteHost->h_addrtype == AF_INET) 
{ 
    //while (remoteHost->h_addr_list[i] != 0) 
    //{ 
    // addr.s_addr = *(u_long *) remoteHost->h_addr_list[i++]; 
    //} 
    addr.s_addr = *(u_long *) remoteHost->h_addr_list[0]; 
} 

Я прокомментировал цикл while. Эта часть просто зацикливается на списке адаптеров, в конечном итоге останавливаясь на последнем (что в нашем случае является адаптерами VMware).

Использование h_addr_list [0] дает мой физический адаптер. Тем не менее, я не уверен, как порядок определен, или как я могу определить, что является физическим, и который является виртуальным.

Надеюсь, что это поможет.

 Смежные вопросы

  • Нет связанных вопросов^_^