IP Address conversion from string to unsigned int

  • I have a QString where the user provides an IP address like "" 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 "". 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.

  • 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