2010-02-10 65 views
8

我認爲QHostAddress是它,但奇怪的是,它並沒有提供驗證IP地址是否有效的方法(已經廢棄到Qt3)。Qt是否提供了表示IP地址的類?

有誰知道嗎?

+0

當你說 「方法來驗證IP地址是否是有效的」,你指的是'isIPv4Address()'和'isIPv6Address()'方法或其他什麼東西? – 2010-02-10 21:44:48

+0

你如何定義「有效」? – PiedPiper 2010-02-10 21:45:22

+0

@RA,是的,你是對的。基本上,我只想要一個可以接受QString的類,並告訴我QString是否是一個有效的IP地址。我認爲QHostAddress就是那個,但可能不是。 – sivabudh 2010-02-10 21:51:49

回答

5

下面是諾基亞支持工程師,官方答案名稱隱私保護刪除:

我張貼stackoverflow.com問題如下:

Does Qt provide a class that represents an IP address?

你可以看到有人發佈了我的問題的解決方案。

不過,我想問問怎麼來的諾基亞不只是提供一種方法來

QHostAddress(如參考isValid()),將檢查主機地址的 有效性?

謝謝您的詢問。您可以使用isNull()方法 檢查 的有效性。它將返回true爲 無效地址: http://doc.qt.digia.com/4.6/qhostaddress.html#isNull

希望這會有所幫助。

問候,

支持工程師,Qt開發框架 諾基亞

7

有一個替代使用isIpv4Address()isIPv6Address()。例如:

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."); 
} 

參見:

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

希望這有助於。

+0

對我來說足夠了。謝謝! – sivabudh 2010-02-10 22:04:50

+0

奇怪的是,諾基亞如何不在QHostAddress中創建這種方法之一。我會出示一張票問他們。 – sivabudh 2010-02-10 22:05:26