Unsolved Can we do IP scanning using QT
-
I want to perform an IP scanning using QT application and connect with my server , whether this can be done using QT
-
Nothing specific feature called IP Scanning in Qt. You can use any standard methodology to scan the IPs.
-
@dheerendra any suggestions or any sample will be available ?
-
@ManiRon Can you explain what you want to do? Do you want something like service discovery? Do you want to search for your server without knowing its IP? You could use UDP broadcast (you can do this with Qt), see http://www.cs.ubbcluj.ro/~dadi/compnet/labs/lab3/udp-broadcast.html for some explanation. Your server will need to answer on that broadcast. There are more advanced techniques, see https://en.wikipedia.org/wiki/Service_discovery
-
@jsulm I want to find the server without knowing its ip and connect with it and i want it in TCP
-
@ManiRon Well, you can try to connect to all valid IP addresses in your network (subnet mask defines valid IPs), but that can take time.
-
@jsulm Ya i tried it and it takes time , thats why i am looking for an alternative
-
@ManiRon Alternative is service discovery (or UDP broadcast, after broadcast you can do TCP as usual)...
-
@jsulm said in Can we do IP scanning using QT:
But for UDP broadcast i might have to implement some coding on my server side , which i might not be able to do . whether we can use UDP broadcast without modifying the server side
-
@ManiRon Can't you give your server a DNS name? And then simply connect to that name instead of an IP?
-
@jsulm I have to check this way , will there be any samples available ?
-
You can try to use the nmap utility or its library to do a network scanning.
-
@kuzulis it is a little tough to understand and the flow of the code is also tough to understand, Thats why looking for an alternate way
-
@kuzulis i am not having clarity on how to use its library file with my application
-
@ManiRon Pass an URL to connectToHost instead of IP
-
@jsulm said in Can we do IP scanning using QT:
connectToHost
I passed an URL but the client is not connecting to the server,
client side :
QTcpSocket *tcpSocket; tcpSocket->connectToHost("www.test.com", 6547);
server side :
QTcpServer *tcpServer; tcpServer->listen(QHostAddress::Any, 6547)
-
@ManiRon Alright, this may be a silly solution offer, sorry for that, but you can start a process that prints your public IP address to a file, and laterly, you can assign the file as a string?
QProcess process; process.start("curl ifconfig.me > ipaddress"); //Saves the public IP address as the file "ipaddress" //You may delete the file with another process if you want. QString fname="ipaddress"; QFile file(fname); QString ip; if (file.open(QIODevice::ReadOnly | QIODevice::Text)){ QTextStream stream(&file); while (!stream.atEnd()){ ip = stream.readLine(); } } file.close();
So, on a Linux based system, the string variable "ip" must be your public IP address.
-
-
@closx He needs the IP of his server which not necessarily runs on same machine...
-
@jsulm said in Can we do IP scanning using QT:
@closx He needs the IP of his server which not necessarily runs on same machine...
Then we can replace the code with
QProcess process; process.start("dig +short test.com > ipaddress"); QString fname="ipaddress"; QFile file(fname); QString ip; if (file.open(QIODevice::ReadOnly | QIODevice::Text)){ QTextStream stream(&file); while (!stream.atEnd()){ ip = stream.readLine(); } } file.close();
Didn't I still get the main problem? Am I retarded? lmao