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.


  • Moderators



  • 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.



  • Have you added QtNetwork module to your project? Probably not and that's why you had unresolved external errors.


  • Moderators

    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.



  • I had included QtNetwork, still had the unresolved externals. Not really an issue anymore since I am using my alternative approach.



  • You added that to the .PRO file and ran QMake afterwards?

    Anyways, as you say, case is closed.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.