c ++ - gethostname på en maskine med flere netværksgrænseflader

Indlæg af Hanne Mølgaard Plasc

Problem



Hvad vil gethostname-systemet vende tilbage på en maskine med flere netværksinterfaces? Er det muligt at konfigurere dette på OS-niveau?

Bedste reference


Antallet af netværksgrænseflader, der bruges til at forbinde maskinen til verden, er mere eller mindre uafhængig af antallet af værtsnavne. Du kan have flere grænseflader med et enkelt navn (selvom det er noget usædvanligt) eller flere navne med en enkelt grænseflade (betydeligt mere almindeligt).


Hvad angår den værdi, den returnerer, siger MSDN:



  f gethostname-funktionen bruges på en klynge ressource på Windows Server 2008, Windows Server 2003 eller Windows 2000 Server og miljøvariablen \_CLUSTER\_NETWORK\_NAME\_ er defineret, og værdien i denne miljøvariabel tilsidesætter det egentlige værtsnavn og returneres. På en klyngeressource indeholder \_CLUSTER\_NETWORK\_NAME\_ miljøvariablen navnet på klyngen.

  
  Gethostname-funktionen forespørger navneudbydere for at bestemme det lokale værtsnavn ved hjælp af SVCID\_HOSTNAME GUID defineret i headerfilen Svgguid.h. Hvis ingen navnepladsleverandør reagerer, returnerer gethostname-funktionen NetBIOS-navnet på den lokale computer.



Som sådan er det normalt et spørgsmål om DNS-konfiguration, men for et medlem af en klynge kan du indstille en miljøvariabel.

Andre referencer 1


http://beej.us/guide/bgnet/output/html/multipage/gethostnameman.html[1]


Der vil være et værtsnavn -> rodnavn

Andre referencer 2


Værtsnavnet er gemt på OS-niveau. Det betyder ikke, hvor mange NIC'er din pc har, det vil være det samme for dem alle.