Unsolved Can we do IP scanning using QT
-
@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
-
@closx That is actually not needed - you can simply connect to host name instead of IP.
-
This post is deleted! -
@jsulm how to set the host name of server ? can you provide me an example ?
-
@ManiRon Read the manual of your server or OS.
For Ubuntu Linux for example see https://www.cyberciti.biz/faq/ubuntu-change-hostname-command/ -
@jsulm i want for windows
-
@ManiRon
Its very easy to find on google
https://www.cnet.com/how-to/how-to-change-your-computers-name-in-windows-10/
Make sure it matches the Windows OS you are using. -
@mrjj actually my client runs on windows and my server runs on linux , now in this scenario how to set the host name and connect with the server
-
@ManiRon
If the server is Linux, it's like @jsulm showed.
The host name of the server is not related to the client. nothing needs to be done client side
for server to have a hostname/name.
Its just an alternative to the pure IP.Howver, is the server on the same network as you ? ( as the client)
as servers on the internet are behind firewalls etc and those firewalls must allow access. -
@mrjj three systems which are connected one to one