Nome do dispositivo do adaptador de rede do Windows 7 usando o winpcap

2

Estou tentando usar o winpcap para um aplicativo que deve ser usado em vários servidores em uma linha de produção. Uma coisa que me irrita até agora é a convenção de nomenclatura de dispositivos do Windows 7, que é uma longa cadeia hexadecimal e muda de servidor para servidor (por exemplo, \Device\NPF_{6F2E340D-FD43-4505-81C2-735716D02F15} (o Linux torna isso mais fácil apenas com a convenção eth0, eth1, ...). Como cada servidor usará 5 adaptadores de rede, eu gostaria de evitar ter que manter um arquivo de configuração com os nomes dos dispositivos ou evitar alterar o código-fonte para acomodar as mudanças no nome do dispositivo. para diferentes dispositivos em redes separadas e as atribuições de porta devem permanecer sempre as mesmas por desenho.

Então, a minha pergunta é, existe alguma maneira fácil de gerenciar esses nomes de dispositivos no Windows, como ser capaz de renomeá-los de alguma forma no registro? Quando eu olhei no registro, a string hexadecimal é mostrada em muitas entradas e também aparece em nomes de pastas, então eu não tinha certeza se isso se tornaria algum incômodo para mudar ou não. Ou talvez, há uma maneira com o winpcap para pegar o nome amigável de um dispositivo que pode ser definido através da página de conexões de rede e obter o resultado do nome do dispositivo hexadecimal (semelhante a findalldev_ex ()). Qualquer outra sugestão também é bem vinda.

PS: Eu sei que posso usar o bind () para vincular ao ip e portas ou usar o winsock etc, mas a interface do aplicativo e hardware para outros dispositivos é complicada devido a vários adaptadores de rede que precisam ter o mesmo endereço IP e conflitos no windows, portanto, a opção winpcap no modo promíscuo, criando todas as mensagens brutas.

    
por Pita 17.04.2015 / 02:49

1 resposta

2

Como obtenho o "Nome da conexão" de uma conexão de rede?

No Windows getmac pode ser usado para recuperar tanto o "Nome da Conexão" (nome amigável) quanto o "Nome do Transporte" (GUID).

getmac /fo csv /v

Exemplo de saída:

"Connection Name","Network Adapter","Physical Address","Transport Name"
"Local Area Connection","Realtek PCIe GBE Family Controller","F0-BF-97-62-95-5D","\Device\Tcpip_{45B9E87F-83FB-4829-A751-6B62656CC1A8}"
"Wireless Network Connection","Atheros AR9285 Wireless Network Adapter","CC-AF-78-B2-4C-09","\Device\Tcpip_{B108BB0B-CCDC-4ACA-9DFE-5A2F17BC138D}"
"Bluetooth Network Connection","Bluetooth Device (Personal Area Network)","CC-AF-78-B2-4C-0A","Media disconnected"

Como renomeio uma conexão?

netsh pode ser usado para renomear uma conexão de rede.

netsh interface set interface name="Local Area Connection" newname="New Name"

Como posso automatizar tudo isso?

Você pode usar os comandos acima em um arquivo em lotes ao instalar seu produto para criar automaticamente um arquivo de configuração local personalizado.

Leitura Adicional

  • Um índice A-Z da linha de comando do Windows CMD - Uma excelente referência para todas as coisas relacionadas à linha do Windows cmd.
  • getmac - Exibe o endereço MAC (Controle de Acesso à Mídia) e a lista de protocolos de rede associados a cada endereço para todas as placas de rede em cada computador, localmente ou através de uma rede.
  • netsh - Configurar interfaces de rede, firewall do Windows, roteamento & acesso remoto.
por 17.04.2015 / 06:22