IP Address conversion from string to unsigned int
-
I have a QString where the user provides an IP address like "192.168.0.128" and I need to convert this to the corresponding 32-bit unsigned int value (0xC0A80080). Is there a recommended way to do this?
Of course, I could come up with my own method to parse the string and do the conversion, but I'm sure there are many applications that do this already - I don't want to reinvent it if Qt already provides something like this.
Thanks for any guidance you can provide.
-
Use "QHostAddress::toIPv4Address":https://qt-project.org/doc/qt-4.8/qhostaddress.html#toIPv4Address
-
I did try using QHostAddress, but had problems with unresolved externals, couldn't find the methods in QHostAddress - ???
Anyway, here is an alternative approach:
I have a QString called Server_IP containing something like "192.168.0.128". The code below converts this to a 32-bit value (serverIPnum):
@
QStringList server_octets = Server_IP.split(".");
s1 = server_octets.at(0).toLong();
s2 = server_octets.at(1).toLong();
s3 = server_octets.at(2).toLong();
s4 = server_octets.at(3).toLong();
serverIPnum = (s1 << 24) | (s2 << 16) | (s3 << 8) | s4;
@
Maybe not very elegant, but it works. -
d2uriel is probably right that you did not include QNetwork module.
Please use "code wrappings":http://qt-project.org/wiki/ForumHelp#e3f82045ad0f480d3fb9e0ac2d58fb01 next time. I have added them for you.