2010-02-10 13 views
8

Myślałem, że to QHostAddress, ale to dziwne, że nie zapewnia metod sprawdzania, czy adres IP jest prawidłowy (już jest, ale przestał być Qt3).Czy Qt udostępnia klasę reprezentującą adres IP?

Czy ktoś wie?

+0

Kiedy mówisz "metody sprawdzania, czy adres IP jest prawidłowy", jesteś powołując się na 'isIPv4Address()' i 'isIPv6Address()' metod czy coś innego? –

+0

Jak definiujesz "prawidłowe"? – PiedPiper

+0

@RA, tak, masz rację. Zasadniczo chciałem tylko klasy, która zajęłaby QString i powie mi, czy QString jest prawidłowym adresem IP. Myślałem, że to QHostAddress, ale prawdopodobnie nie. – sivabudh

Odpowiedz

5

Oto oficjalna odpowiedź od Nokia inżyniera wsparcia, nazwisko usunięte do ochrony prywatności:

Zamieściłem pytanie na stackoverflow.com następująco:

Does Qt provide a class that represents an IP address?

Można zobacz, czy ktoś już opublikował rozwiązanie mojego pytania.

jednak chciałbym zapytać dlaczego Nokia nie tylko dostarczenie sposobu

QHostAddress (jak isValid()), które będą sprawdzać adres hosta ważność?

Dziękujemy za zapytanie. Możesz użyć metody isNull(), aby sprawdzić ważność . Zwróci true dla nieprawidłowych adresów: http://doc.qt.digia.com/4.6/qhostaddress.html#isNull

Mam nadzieję, że to pomoże.

Pozdrawiam,

Inżynier Wsparcia, Qt Development szkieletowe Nokia

7

Istnieje alternatywa dla używania isIpv4Address() i isIPv6Address(). Na przykład:

QHostAddress address(myString); 
if (QAbstractSocket::IPv4Protocol == address.protocol()) 
{ 
    qDebug("Valid IPv4 address."); 
} 
else if (QAbstractSocket::IPv6Protocol == address.protocol()) 
{ 
    qDebug("Valid IPv6 address."); 
} 
else 
{ 
    qDebug("Unknown or invalid address."); 
} 

Zobacz także:

http://doc.qt.digia.com/4.6/qhostaddress.html#protocol

nadzieję, że to pomaga.

+0

Wystarczająco dobre dla mnie. Dziękuję Ci! – sivabudh

+0

Dziwne, że Nokia nie czyni tego jedną z metod w QHostAddress.Postaram się o bilet. – sivabudh