getIPSttring():连接的ip以及端口号来返回本地的ip地址
getMacString() : 通过本地的ip地址获得该IP地址关联的网络接口的MAC地址
QString getIpString(QString ip, QString port)
{
QTcpSocket socket;
int t_port = port.toInt();
socket.connectToHost(ip, t_port);
if (socket.waitForConnected(1000))
{
QHostAddress address = socket.localAddress();
if (address.protocol() == QAbstractSocket::IPv4Protocol && address != QHostAddress(QHostAddress::LocalHost))
{
return address.toString();
}
}
return "";
}
QString getMacString(QString localIP)
{
if (localIP.isEmpty())
return "";
QList<QNetworkInterface> network = QNetworkInterface::allInterfaces();
foreach(QNetworkInterface net, network)
{
if (net.flags().testFlag(QNetworkInterface::IsUp)
&& net.flags().testFlag(QNetworkInterface::IsRunning)
&& net.flags().testFlag(QNetworkInterface::CanBroadcast)
&& net.flags().testFlag(QNetworkInterface::CanMulticast)
&& net.hardwareAddress() != "00:00:00:00:00:00"
&& net.hardwareAddress() != "80:80:80:80:80:80")
{
QList<QNetworkAddressEntry> allIP = net.addressEntries();
foreach(QNetworkAddressEntry ip, allIP)
{
if (ip.ip().protocol() == QAbstractSocket::IPv4Protocol)
{
if (ip.ip().toString().compare(localIP) == 0)
return net.hardwareAddress();
}
}
}
}
return "";
}