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.
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 [qt-project.org] next time. I have added them for you.