Je pensais que Qhostaddress était-ce, mais il ne fournit pas étrangement à valider si l'adresse IP est valide ou non (plus, a été obsolète à Qt3). P>
Est-ce que quelqu'un sait? p>
5 Réponses :
Il existe une alternative à l'utilisation de Voir aussi: p> http://doc.qt.digia.com/4.6/qhostaddress.html#protocol p> J'espère que cela aide. P> P> isipv4Address () code> et isipv6Address () code>. Par exemple:
Suffisant pour moi. Merci!
Etrange Comment Nokia ne fait pas seulement de faire celle-ci des méthodes de Qhostadddress. Je vais mettre un billet pour leur demander.
Voici la réponse officielle de Nokia Support Ingénieur, nom supprimé pour la protection de la vie privée: P>
J'ai posté une question sur Stackoverflow.com comme suit: p>
Qt fournir une classe qui représente une adresse IP Adresse? P>
Vous pouvez voir que quelqu'un a déjà posté une solution à ma question. p>
Cependant, je veux demander comment se rapporter Nokia ne propose pas simplement une méthode à p>
qhostaddress (comme Isvalid ()) qui vérifiera l'adresse hôte Validité? P> blockQuote>
Merci pour votre demande. Tu peux Utilisez la méthode ISNULL () pour vérifier le validité. Il retournera vrai pour Adresses non valides: http://doc.qt.digia.com/4.6/qhostadddress.html# isnull p>
J'espère que cela aide. P>
Cordialement, P>
Ingénieur de support, Développement QT Cadres, Nokia P> blockQuote>
Le BOOL code> Valeur de retour de qhostaddress :: settaddress (const qstring & adresse) code> indique si la chaîne est analysée avec succès d'une adresse IPv4 ou IPv6. QHostAddress addr;
if (addr.setAddress(myString)) {
// valid
} else {
// invalid
}
J'ai trouvé toutes les solutions ci-dessus pour être peu fiables pour les adresses IPv4 au moins. Par exemple, quand '192' et '192.' ont été utilisés pour créer un J'ai trouvé une solution plus robuste consiste à vérifier le format de chaîne d'adresse IP à l'aide de Un exemple d'une bonne expression régulière IPv4 peut être trouvé ici P>
Comment définir le masque d'entrée et qvalidator sur un QLineDit à la fois dans QT? P> qhostaddress code>. Les deux .SetAddress () et si (qabstractsocket :: ipv4protocol == adresse.protocol () code> retourné true code>! P>
qregularexpression code> et qregularexpressionvalidator p>. p>.
As Harsha Biyani mentionné, il y a un bogue en fonction PARSIP4Internal, (qtBase \ src \ corelib \ io \ qipaddress.cpp). L'analyse d'adresse IPv4 n'est pas correcte. Qhostaddress utilise cette fonction pour résoudre les adresses IPv4. P>
upd. Les adresses telles que "1", "1.1" sont considérées comme des adresses correctes et sont équivalentes à "0.0.0.1" et "1.0.0.1" respectivement. P>
Lorsque vous dites "Les méthodes de validation de l'adresse IP ou non sont valides ou non", parlez-vous du
isipv4Address () code> etiIPV6Address () code> méthodes ou autre chose?@Ra, oui tu es correct. Fondamentalement, je voulais juste une classe qui prendrait Qstring et me dit si le QString est une adresse IP valide. Je pensais que Qhostaddress était celui-là, mais probablement pas.
Je crois que IIPV4Address () et isipv6Address () sont maintenant obsolètes car il est regroupé sous qt_3 (?)
J'ai le même problème, mais ces réponses n'ont pas résolu les miens. Ex: qhostaddress IP ("1.2"); ip.isnull (); // toujours vrai (je veux faux ici).