Pregunta

Estoy jugando con las tomas de corriente ioctl de conseguir la configuración de las interfaces actual y ya puedo obtener la IP, nombre de la interfaz, máscara de red y comprobar si la interfaz está arriba o abajo, (acabo de hacer ioctl a SIOCGIFCONF, SIOCGIFNETMASK y SIOCGIFFLAGS ).

Estoy buscando una manera de saber si se obtuvo mi dirección IP actual a través de DHCP o si era estático.

puedo comprobar / etc / network / interfaces para todo lo que quiero, pero estoy buscando una manera de hacerlo programmaticly (existe esta palabra?).

¿Alguien tiene alguna idea de esto?

Una cosa más, estoy trabajando en Linux (por ahora).

Saludos

¿Fue útil?

Solución

Con la amplia variedad de clientes DHCP en Linux - bomba, dhcpcd , dhclient , udhcpc , y muy posiblemente otros que no conozco de -. esto no es posible en un sentido general

Sin embargo, si se dirigen a una distribución específica - por ejemplo, "instalación por defecto de Ubuntu" - a continuación, se puede investigar soluciones como la de Stefan. Tenga en cuenta que los cuatro de los clientes DHCP mencionados aquí se puede instalar en Ubuntu y puede sustituir el cliente DHCP por defecto, dhclient.

Otros consejos

Si está ejecutando Ubuntu, los contratos de arrendamiento se almacenan en /var/lib/dhcp3/dhclient-[interface_name].lease, tal vez eso es un comienzo.

No creo que su posible saber a través de un interfaz del núcleo (ioctl) si una dirección IP mediante DHCP se asignó al igual que en la mayoría de las distribuciones de DHCP es una aplicación de espacio de usuario que acaba de configuración del núcleo con los datos proporcionados por una fuente remota, como si el usuario hubiera hecho de forma manual. De hecho, si nos fijamos en el ISC dhclient simplemente pasa los datos recibidos desde el servidor DHCP para las secuencias de comandos shell simple que hacen ifconfig, ruta y varios otros comandos que se puede escribir como usuario.

Así que es probable que tenga que mirar métodos que son específicos de su cliente DHCP y distribución según lo sugerido por Stefan.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top