How to find other machine's IP Address in Qt ??
-
Hi All,
I just want to know how to find ip Adrress of another machine programmatically in Qt.
Any help will be appreciated.
Thanx in Advance. -
Thank you @Binary91 for your response.
I tried using sockets. but it takes sometime to find out all the address in a network.
Then I combined sockets with multithreading to get the ip adress quickly. but In case if there are thousands of system , this procedure will take a lot of CPU usage and RAM. So I want to minimize it also.
So Is there any other method to achieve this ?
-
check this QNetworkInterface
-
I have used QNetworkInterface class but it is not very helpful as i needed to ipaddress of other machine or say (ip address of) all machines.
-
you can try:
@// Send a broadcast packet on all interfaces
void DuktoProtocol::sendToAllBroadcast(QByteArray *packet)
{
// Get network interfaces list
QList<QNetworkInterface> ifaces = QNetworkInterface::allInterfaces();// Interfaces iteration for (int i = 0; i < ifaces.size(); i++) { // Now get all IP addresses for the current interface QList<QNetworkAddressEntry> addrs = ifaces[i].addressEntries(); // And for any IP address, if it is IPv4 and the interface is active, send the packet for (int j = 0; j < addrs.size(); j++) if ((addrs[j].ip().protocol() == QAbstractSocket::IPv4Protocol) && (addrs[j].broadcast().toString() != "")) mSocket->writeDatagram(packet->data(), packet->length(), addrs[j].broadcast(), UDP_PORT); }
}@
-
Thank u @Salvatello for posting the code.
I tried it but unfortunately it is not providing required output.This code is providing all kind of local Address of hosting machine.
-
Hi andreyc!! Thank u for your reply.
As your suggestion, I am searching for mayne library on Windows. Will you please provide me the link for mayne libary.
Thank you.