QNetworkInterface Class
La clase QNetworkInterface proporciona un listado de las direcciones IP e interfaces de red del host. Más...
| Cabecera: | #include <QNetworkInterface> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network)target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
- Lista de todos los miembros, incluidos los heredados
- QNetworkInterface es parte de la API de Programación de Redes y Clases Implícitamente Compartidas.
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
| enum | InterfaceFlag { IsUp, IsRunning, CanBroadcast, IsLoopBack, IsPointToPoint, CanMulticast } |
| flags | InterfaceFlags |
| enum | InterfaceType { Unknown, Loopback, Virtual, Ethernet, Wifi, …, Ieee1394 } |
Funciones Públicas
| QNetworkInterface() | |
| QNetworkInterface(const QNetworkInterface &other) | |
| ~QNetworkInterface() | |
| QList<QNetworkAddressEntry> | addressEntries() const |
| QNetworkInterface::InterfaceFlags | flags() const |
| QString | hardwareAddress() const |
| QString | humanReadableName() const |
| int | index() const |
| bool | isValid() const |
| int | maximumTransmissionUnit() const |
| QString | name() const |
| void | swap(QNetworkInterface &other) |
| QNetworkInterface::InterfaceType | type() const |
| QNetworkInterface & | operator=(const QNetworkInterface &other) |
Miembros públicos estáticos
| QList<QHostAddress> | allAddresses() |
| QList<QNetworkInterface> | allInterfaces() |
| QNetworkInterface | interfaceFromIndex(int index) |
| QNetworkInterface | interfaceFromName(const QString &name) |
| int | interfaceIndexFromName(const QString &name) |
| QString | interfaceNameFromIndex(int index) |
No Miembros Relacionados
| QDebug | operator<<(QDebug debug, const QNetworkInterface &networkInterface) |
Descripción Detallada
QNetworkInterface representa una interfaz de red conectada al host donde se está ejecutando el programa. Cada interfaz de red puede contener cero o más direcciones IP, cada una de las cuales está opcionalmente asociada a una máscara de red y/o a una dirección de broadcast. La lista de dichos tríos puede obtenerse con addressEntries(). Alternativamente, cuando la máscara de red o las direcciones de difusión u otra información no son necesarias, utilice la función de conveniencia allAddresses() para obtener sólo las direcciones IP de las interfaces activas.
QNetworkInterface también informa de la dirección hardware de la interfaz con hardwareAddress().
No todos los sistemas operativos admiten la notificación de todas las funciones. Sólo las direcciones IPv4 están garantizadas para ser listadas por esta clase en todas las plataformas. En particular, el listado de direcciones IPv6 sólo está soportado en Windows, Linux, macOS y los BSD.
Véase también QNetworkAddressEntry.
Documentación de tipos de miembros
enum QNetworkInterface::InterfaceFlag
flags QNetworkInterface::InterfaceFlags
Especifica las banderas asociadas a esta interfaz de red. Los valores posibles son:
| Constante | Valor | Descripción |
|---|---|---|
QNetworkInterface::IsUp | 0x1 | la interfaz de red está "activa": activada por acción administrativa |
QNetworkInterface::IsRunning | 0x2 | la interfaz de red está operativa: configurada "up" y (normalmente) conectada físicamente a una red |
QNetworkInterface::CanBroadcast | 0x4 | la interfaz de red funciona en modo de difusión |
QNetworkInterface::IsLoopBack | 0x8 | la interfaz de red es una interfaz loopback: es decir, es una interfaz virtual cuyo destino es el propio ordenador host |
QNetworkInterface::IsPointToPoint | 0x10 | la interfaz de red es una interfaz punto a punto: es decir, existe una única dirección a la que se puede acceder directamente a través de ella. |
QNetworkInterface::CanMulticast | 0x20 | la interfaz de red admite multidifusión |
Tenga en cuenta que una interfaz de red no puede ser a la vez broadcast y punto a punto.
El tipo InterfaceFlags es un typedef para QFlags<InterfaceFlag>. Almacena una combinación OR de valores InterfaceFlag.
enum QNetworkInterface::InterfaceType
Especifica el tipo de hardware (capa PHY, nivel 1 de OSI) que es esta interfaz, si se ha podido determinar. Los tipos de interfaz que no se encuentren entre los listados a continuación se listarán generalmente como Desconocido, aunque futuras versiones de Qt pueden añadir nuevos valores de enumeración.
Los valores posibles son:
| Constante | Valor | Descripción |
|---|---|---|
QNetworkInterface::Unknown | 0 | No se ha podido determinar el tipo de interfaz o no es uno de los tipos listados. |
QNetworkInterface::Loopback | 1 | La interfaz virtual de loopback, a la que se asignan las direcciones IP de loopback (127.0.0.1, ::1). |
QNetworkInterface::Virtual | 2 | Un tipo de interfaz determinado como virtual, pero que no es ninguno de los otros tipos posibles. Por ejemplo, las interfaces de túnel se detectan (actualmente) como virtuales. |
QNetworkInterface::Ethernet | 3 | Interfaces Ethernet IEEE 802.3, aunque en muchos sistemas también pueden detectarse como Ethernet otros tipos de interfaces IEEE 802 (especialmente Wi-Fi). |
QNetworkInterface::Wifi | 8 | Interfaces Wi-Fi IEEE 802.11. Tenga en cuenta que en algunos sistemas, QNetworkInterface puede ser incapaz de distinguir entre Ethernet normal y Wi-Fi y no devolverá este valor enum. |
QNetworkInterface::Ieee80211 | Wifi | Un alias para WiFi. |
QNetworkInterface::CanBus | 5 | Interfaces de bus de red de área de controlador ISO 11898, que suelen encontrarse en los sistemas de automoción. |
QNetworkInterface::Fddi | 7 | ANSI X3T12 Fiber Distributed Data Interface, una red de área local sobre fibras ópticas. |
QNetworkInterface::Ppp | 6 | Interfaces de protocolo punto a punto, que establecen una conexión directa entre dos nodos a través de una capa de transporte inferior (a menudo en serie a través de radio o línea física). |
QNetworkInterface::Slip | 4 | Interfaces Serial Line Internet Protocol. |
QNetworkInterface::Phonet | 9 | Interfaces que utilizan la familia de sockets Linux Phonet, para la comunicación con módems celulares. Para más información, consulte la documentación del kernel de Linux. |
QNetworkInterface::Ieee802154 | 10 | Interfaces de red de área personal IEEE 802.15.4, distintas de 6LoWPAN (véase más abajo). |
QNetworkInterface::SixLoWPAN | 11 | Interfaces 6LoWPAN (IPv6 sobre redes de área personal inalámbricas de baja potencia), que funcionan con IEEE 802.15.4 PHY, pero tienen esquemas de compresión de cabecera específicos para IPv6 y UDP. Este tipo de interfaz suele utilizarse para redes malladas. |
QNetworkInterface::Ieee80216 | 12 | Red inalámbrica de área metropolitana IEEE 802.16, también conocida con el nombre comercial de "WiMAX". |
QNetworkInterface::Ieee1394 | 13 | Interfaces IEEE 1394 (también conocidas como "FireWire"). |
Documentación de las funciones de los miembros
QNetworkInterface::QNetworkInterface()
Construye un objeto de interfaz de red vacío.
QNetworkInterface::QNetworkInterface(const QNetworkInterface &other)
Crea una copia del objeto QNetworkInterface contenido en other.
[noexcept] QNetworkInterface::~QNetworkInterface()
Libera los recursos asociados al objeto QNetworkInterface.
QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const
Devuelve la lista de direcciones IP que posee esta interfaz junto con sus máscaras de red y direcciones de difusión asociadas.
Si la máscara de red o la dirección de difusión u otra información no es necesaria, puede llamar a la función allAddresses() para obtener sólo las direcciones IP de las interfaces activas.
[static] QList<QHostAddress> QNetworkInterface::allAddresses()
Esta función devuelve todas las direcciones IP encontradas en la máquina anfitriona. Es equivalente a llamar a addressEntries() en todos los objetos devueltos por allInterfaces() que están en el estado QNetworkInterface::IsUp para obtener listas de objetos QNetworkAddressEntry y luego llamar a QNetworkAddressEntry::ip() en cada uno de ellos.
[static] QList<QNetworkInterface> QNetworkInterface::allInterfaces()
Devuelve un listado de todas las interfaces de red encontradas en la máquina anfitriona. En caso de fallo devuelve una lista con cero elementos.
QNetworkInterface::InterfaceFlags QNetworkInterface::flags() const
Devuelve las banderas asociadas a esta interfaz de red.
QString QNetworkInterface::hardwareAddress() const
Devuelve la dirección de hardware de bajo nivel de esta interfaz. En interfaces Ethernet, será una dirección MAC en representación de cadena, separada por dos puntos.
Otros tipos de interfaz pueden tener otros tipos de direcciones de hardware. Las implementaciones no deberían depender de que esta función devuelva una dirección MAC válida.
Véase también type().
QString QNetworkInterface::humanReadableName() const
Devuelve el nombre legible por humanos de esta interfaz de red en Windows, como "Conexión de área local", si se pudo determinar el nombre. Si no se pudo, esta función devuelve lo mismo que name(). El nombre legible por humanos es un nombre que el usuario puede modificar en el Panel de Control de Windows, por lo que puede cambiar durante la ejecución del programa.
En Unix, esta función actualmente siempre devuelve lo mismo que name(), ya que los sistemas Unix no almacenan una configuración para nombres legibles por humanos.
int QNetworkInterface::index() const
Devuelve el índice de sistema de la interfaz, si se conoce. Se trata de un número entero asignado por el sistema operativo para identificar esta interfaz y generalmente no cambia. Coincide con el campo scope ID de las direcciones IPv6.
Si no se conoce el índice, esta función devuelve 0.
[static] QNetworkInterface QNetworkInterface::interfaceFromIndex(int index)
Devuelve un objeto QNetworkInterface para la interfaz cuyo ID interno es index. Las interfaces de red tienen un identificador único llamado "índice de interfaz" para distinguirla de otras interfaces del sistema. A menudo, este valor se asigna progresivamente y las interfaces que se eliminan y se vuelven a añadir obtienen un valor diferente cada vez.
Este índice también se encuentra en el campo scope ID de la dirección IPv6.
[static] QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)
Devuelve un objeto QNetworkInterface para la interfaz denominada name. Si no existe tal interfaz, esta función devuelve un objeto QNetworkInterface inválido.
La cadena name puede ser un nombre de interfaz real (como "eth0" o "en1") o un índice de interfaz en forma de cadena ("1", "2", etc.).
Véase también name() y isValid().
[static] int QNetworkInterface::interfaceIndexFromName(const QString &name)
Devuelve el índice de la interfaz cuyo nombre es name o 0 si no hay ninguna interfaz con ese nombre. Esta función debería producir el mismo resultado que el código siguiente, pero probablemente se ejecutará más rápido.
QNetworkInterface::interfaceFromName(name).index()
Véase también interfaceFromName(), interfaceNameFromIndex(), y QNetworkDatagram::interfaceIndex().
[static] QString QNetworkInterface::interfaceNameFromIndex(int index)
Devuelve el nombre de la interfaz cuyo índice es index o una cadena vacía si no hay ninguna interfaz con ese índice. Esta función debería producir el mismo resultado que el código siguiente, pero probablemente se ejecutará más rápido.
QNetworkInterface::interfaceFromIndex(index).name()
Véase también interfaceFromIndex(), interfaceIndexFromName(), y QNetworkDatagram::interfaceIndex().
bool QNetworkInterface::isValid() const
Devuelve true si este objeto QNetworkInterface contiene información válida sobre una interfaz de red.
int QNetworkInterface::maximumTransmissionUnit() const
Devuelve la unidad de transmisión máxima en esta interfaz, si se conoce, o 0 en caso contrario.
La unidad de transmisión máxima es el paquete más grande que se puede enviar en esta interfaz sin incurrir en fragmentación a nivel de enlace. Las aplicaciones pueden utilizar este valor para calcular el tamaño de la carga útil que cabe en un datagrama UDP sin fragmentar. Recuerde restar los tamaños de las cabeceras utilizadas en su comunicación a través de la interfaz, por ejemplo, TCP (20 bytes) o UDP (12), IPv4 (20) o IPv6 (40, en ausencia de alguna forma de compresión de cabecera), cuando calcule el tamaño de la carga útil que puede transmitir. Ten en cuenta también que la MTU a lo largo de toda la ruta (la Path MTU) hasta el destino puede ser menor que la MTU de la interfaz.
Véase también QUdpSocket.
QString QNetworkInterface::name() const
Devuelve el nombre de esta interfaz de red. En sistemas Unix, es una cadena que contiene el tipo de interfaz y, opcionalmente, un número de secuencia, como "eth0", "lo" o "pcn0". En Windows, es un ID interno que no puede ser cambiado por el usuario.
[noexcept] void QNetworkInterface::swap(QNetworkInterface &other)
Intercambia esta instancia de interfaz de red con other. Esta operación es muy rápida y nunca falla.
QNetworkInterface::InterfaceType QNetworkInterface::type() const
Devuelve el tipo de esta interfaz, si se ha podido determinar. Si no se ha podido determinar, esta función devuelve QNetworkInterface::Unknown.
Véase también hardwareAddress().
QNetworkInterface &QNetworkInterface::operator=(const QNetworkInterface &other)
Copia el contenido del objeto QNetworkInterface contenido en other en éste.
Relacionados No miembros
QDebug operator<<(QDebug debug, const QNetworkInterface &networkInterface)
Escribe el QNetworkInterface networkInterface en el flujo y devuelve una referencia al flujo debug.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.