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?
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?
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
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.
Wartość bool
powrót QHostAddress::setAddress(const QString &address)
mówi, jeśli ciąg jest analizowany z powodzeniem jako adres IPv4 lub IPv6.
QHostAddress addr;
if (addr.setAddress(myString)) {
// valid
} else {
// invalid
}
Kiedy mówisz "metody sprawdzania, czy adres IP jest prawidłowy", jesteś powołując się na 'isIPv4Address()' i 'isIPv6Address()' metod czy coś innego? –
Jak definiujesz "prawidłowe"? – PiedPiper
@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