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

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

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

Então, minha pergunta é: existe alguma maneira fácil de gerenciar esses nomes de dispositivos no Windows, como poder renomeá-los facilmente de alguma forma no registro? Quando olhei no registro, a string hexadecimal é mostrada em muitas entradas e também aparece em nomes de pastas, então não tinha certeza se isso seria um incômodo para mudar ou não. Ou talvez exista uma maneira do winpcap obter o nome amigável de um dispositivo que pode ser definido por meio da página de conexões de rede e obter o resultado do nome hexadecimal do dispositivo dessa maneira (semelhante a findalldev_ex()). Quaisquer outras sugestões também são bem-vindas.

PS: Eu sei que posso usar bind() para vincular IP e portas ou usar Winsock etc, mas a interface de aplicativos e hardware com outros dispositivos é complicada devido a vários adaptadores de rede que precisam ter o mesmo endereço IP e isso entra em conflito no Windows, daí a opção winpcap no modo promíscuo, criando todas as mensagens brutas.

Responder1

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

No Windows getmacpode 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 faço para renomear uma conexão?

netshpode 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 lote ao instalar seu produto para criar automaticamente um arquivo de configuração local personalizado.


Leitura adicional

  • Um índice AZ da linha de comando do Windows CMD- Uma excelente referência para todas as coisas relacionadas à linha cmd do Windows.
  • getmac- Exibe o endereço MAC (Media Access Control) 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 e acesso remoto.

informação relacionada