hai,
i am new to qt and linux..my problem..in my project we display list network interface using qt4.5 version in ferdora 8.i am using platform is c++..i am see Qnetworkinterface but i am code some ....but it gives some errors...pls help me any one....i am send code..this wrong give right way...once again help me...
thanks in adavance....
Q_GLOBAL_STATIC(QNetworkInterfaceManager, manager)
QNetworkInterfaceManager::QNetworkInterfaceManager ()
{
}
QNetworkInterfaceManager::~QNetworkInterfaceManage r()
{
}
QSharedDataPointer<QNetworkInterfacePrivate> QNetworkInterfaceManager::interfaceFromName(const QString &name)
{
QList<QSharedDataPointer<QNetworkInterfacePrivate> > interfaceList = allInterfaces();
QList<QSharedDataPointer<QNetworkInterfacePrivate> >::ConstIterator it = interfaceList.constBegin();
for ( ; it != interfaceList.constEnd(); ++it)
if ((*it)->name == name)
return *it;
return empty;
}
QSharedDataPointer<QNetworkInterfacePrivate> QNetworkInterfaceManager::interfaceFromIndex(int index)
{
QList<QSharedDataPointer<QNetworkInterfacePrivate> > interfaceList = allInterfaces();
QList<QSharedDataPointer<QNetworkInterfacePrivate> >::ConstIterator it = interfaceList.constBegin();
for ( ; it != interfaceList.constEnd(); ++it)
if ((*it)->index == index)
return *it;
return empty;
}
QList<QSharedDataPointer<QNetworkInterfacePrivate> > QNetworkInterfaceManager::allInterfaces()
{
QList<QNetworkInterfacePrivate *>list=scan();
QList<QSharedDataPointer<QNetworkInterfacePrivate> > result;
foreach (QNetworkInterfacePrivate *ptr, list)
result << QSharedDataPointer<QNetworkInterfacePrivate>(ptr);
return result;
}
QString QNetworkInterfacePrivate::makeHwAddress(int len, uchar *data)
{
QString result;
for (int i = 0; i < len; ++i) {
if (i)
result += QLatin1Char(':');
char buf[3];
#if defined(Q_OS_Lin) && defined(_MSC_VER) && _MSC_VER >= 1400
sprintf_s(buf, 3, "%02hX", ushort(data[i]));
#else
sprintf(buf, "%02hX", ushort(data[i]));
#endif
result += QLatin1String(buf);
}
return result;
}
QNetworkAddressEntry::QNetworkAddressEntry()
: d(new QNetworkAddressEntryPrivate)
{
}
/*!
Constructs a QNetworkAddressEntry object that is a copy of the
object \a other.
*/
QNetworkAddressEntry::QNetworkAddressEntry(const QNetworkAddressEntry &other)
: d(new QNetworkAddressEntryPrivate(*other.d))
{
}
QNetworkInterface::QNetworkInterface()
: d(0)
{
}
/*!
Frees the resources associated with the QNetworkInterface object.
*/
QNetworkInterface::~QNetworkInterface()
{
}
/*!
Creates a copy of the the QNetworkInterface object contained in \a
other.
*/
QNetworkInterface::QNetworkInterface(const QNetworkInterface &other)
: d(other.d)
{
}
/*!
Copies the contents of the QNetworkInterface object contained in \a
other into this one.
*/
QNetworkInterface &QNetworkInterface:perator=(const QNetworkInterface &other)
{
d = other.d;
return *this;
}
/*!
Returns true if this QNetworkInterface object contains valid
information about a network interface.
*/
bool QNetworkInterface::isValid() const
{
return !name().isEmpty();
}
/*!
Returns the name of this network interface. On Unix systems, this
is a string containing the type of the interface and optionally a
sequence number, such as "eth0", "lo" or "pcn0". On Windows, it's
an internal ID that cannot be changed by the user.
*/
QString QNetworkInterface::name() const
{
return d ? d->name : QString();
}
/*!
Returns the flags associated with this network interface.
*/
QNetworkInterface::InterfaceFlags QNetworkInterface::flags() const
{
return d ? d->flags : InterfaceFlags(0);
}
/*!
Returns the low-level hardware address for this interface. On
Ethernet interfaces, this will be a MAC address in string
representation, separated by colons.
Other interface types may have other types of hardware
addresses. Implementations should not depend on this function
returning a valid MAC address.
*/
QString QNetworkInterface::hardwareAddress() const
{
return d ? d->hardwareAddress : QString();
}
/*!
Returns the list of IP addresses that this interface possesses
along with their associated netmasks and broadcast addresses.
If the netmask or broadcast address information is not necessary,
you can call the addresses() function to obtain just the IP
addresses.
*/
QList<QNetworkAddressEntry> QNetworkInterface::addressEntries() const
{
return d ? d->addressEntries : QList<QNetworkAddressEntry>();
}
/*!
Returns a QNetworkInterface object for the interface named \a
name. If no such interface exists, this function returns an
invalid QNetworkInterface object.
\sa name(), isValid()
*/
QNetworkInterface QNetworkInterface::interfaceFromName(const QString &name)
{
QNetworkInterface result;
result.d = manager()->interfaceFromName(name);
return result;
}
/*!
Returns a QNetworkInterface object for the interface whose internal
ID is \a index. Network interfaces have a unique identifier called
the "interface index" to distinguish it from other interfaces on
the system. Often, this value is assigned progressively and
interfaces being removed and then added again get a different
value every time.
This index is also found in the IPv6 address' scope ID field.
*/
QNetworkInterface QNetworkInterface::interfaceFromIndex(int index)
{
QNetworkInterface result;
result.d = manager()->interfaceFromIndex(index);
return result;
}
/*!
Returns a listing of all the network interfaces found on the host
machine.
*/
QList<QNetworkInterface> QNetworkInterface::allInterfaces()
{
QList<QSharedDataPointer<QNetworkInterfacePrivate> > privs = manager()->allInterfaces();
QList<QNetworkInterface> result;
foreach (QSharedDataPointer<QNetworkInterfacePrivate> p, privs) {
QNetworkInterface item;
item.d = p;
result << item;
}
return result;
}
/*!
This convenience function returns all IP addresses found on the
host machine. It is equivalent to calling addresses() in all the
objects returned by allInterfaces().
*/
QList<QHostAddress> QNetworkInterface::allAddresses()
{
QList<QSharedDataPointer<QNetworkInterfacePrivate> > privs = manager()->allInterfaces();
QList<QHostAddress> result;
foreach (const QSharedDataPointer<QNetworkInterfacePrivate> p, privs) {
foreach (const QNetworkAddressEntry &entry, p->addressEntries)
result += entry.ip();
}
return result;
}
#ifndef QT_NO_DEBUG_STREAM
static inline QDebug flagsDebug(QDebug debug, QNetworkInterface::InterfaceFlags flags)
{
if (flags & QNetworkInterface::IsUp)
debug.nospace() << "IsUp ";
if (flags & QNetworkInterface::IsRunning)
debug.nospace() << "IsRunning ";
if (flags & QNetworkInterface::CanBroadcast)
debug.nospace() << "CanBroadcast ";
if (flags & QNetworkInterface::IsLoopBack)
debug.nospace() << "IsLoopBack ";
if (flags & QNetworkInterface::IsPointToPoint)
debug.nospace() << "IsPointToPoint ";
if (flags & QNetworkInterface::CanMulticast)
debug.nospace() << "CanMulticast ";
return debug.nospace();
}
static inline QDebug operator<<(QDebug debug, const QNetworkAddressEntry &entry)
{
debug.nospace() << "(address = " << entry.ip();
if (!entry.netmask().isNull())
debug.nospace() << ", netmask = " << entry.netmask();
if (!entry.broadcast().isNull())
debug.nospace() << ", broadcast = " << entry.broadcast();
debug.nospace() << ")";
return debug.space();
}
QDebug operator<<(QDebug debug, const QNetworkInterface &interface)
{
debug.nospace() << "QNetworkInterface(name = " << interface.name()
<< ", hardware address = " << interface.hardwareAddress()
<< ", flags = ";
flagsDebug(debug, interface.flags());
debug.nospace() << ", entries = " << interface.addressEntries()
<< ")\n";
return debug.space();
}
#endif
Bookmarks