Esiste un metodo per rilevare proceduralmente se il router di rete supporta DHCP usando C / C ++?

StackOverflow https://stackoverflow.com/questions/1608565

Domanda

Esiste uno scenario in cui un'applicazione comunica a un dispositivo su una rete di ottenere il proprio indirizzo IP dal server DHCP del router di rete. Se un server DHCP non è disponibile, il comportamento del dispositivo diventa irregolare. Esiste un metodo per rilevare proceduralmente se il router di rete supporta DHCP? Oppure, è qualcosa che il dispositivo deve fare quando tenta di ottenere il suo indirizzo IP dal server DHCP?

È stato utile?

Soluzione

Il client DHCP sul dispositivo sta facendo esattamente questo. Bene, quasi quello.

Il messaggio DHCP DISCOVERY viene trasmesso sul collegamento. Quindi, se ci sono server DHCP disposti a servire questo particolare indirizzo MAC, ognuno riserva un indirizzo IP dal proprio pool e risponde con il messaggio OFFERTA. Il client sceglie quindi quale server desidera "associare" e invia il messaggio RICHIESTA. Il server conferma il leasing concesso dell'indirizzo IP con un messaggio ACK.
Il cliente rileva "non disponibilità" dei server DHCP semplicemente scadendo in attesa di offerte.

Dai un'occhiata al progetto DHCPing . Potrebbe darti alcune idee.
Collegamenti agli RFC DHCP:

RFC 2131, Dynamic Host Configuration Protocol
RFC 2132, Opzioni DHCP ed estensioni fornitore BOOTP

Altri suggerimenti

Ero qualcosa del genere di questa Windows API C DHCP .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top