在我的应用程序中,我希望从IP地址(在我的LAN中)获取主机名& MAC地址。我使用了这段代码来查找主机名,但是lineedit中没有出现任何内容。
QHostInfo HI;
QHostAddress HA("192.168.1.1");
QList<QHostAddress> List;
List.append(HA);
HI.setAddresses(List);
ui->ledHostname->setText(HI.hostName());发布于 2014-04-12 16:44:44
我使用了这个代码:
QHostInfo HI = QHostInfo::fromName("192.168.1.50");
ui->ledHostname->setText(HI.hostName());为一些ip地址工作&显示主机名!对于其他ip地址,再次显示ip地址。
对于我的MAC问题,我使用的是ARP数据包。
发布于 2014-03-29 07:16:31
要从IP地址检索主机名,可以调用lookupHost(),它以主机名或IP地址、接收方对象和插槽签名作为参数。当结果准备就绪时,将调用插槽。结果存储在QHostInfo对象中。调用addresses()获取主机的IP地址列表,调用hostName()获取查找的主机名。
QHostInfo::lookupHost("92.168.1.1",
this, SLOT(lookedUp(QHostInfo)));
void MyWidget::lookedUp(const QHostInfo &host)
{
if (host.error() != QHostInfo::NoError) {
qDebug() << "Lookup failed:" << host.errorString();
return;
}
foreach (const QHostAddress &address, host.addresses())
qDebug() << "Found address:" << address.toString();
}为了获得远程IP的MAC地址,您应该使用系统命令和特定于平台的代码。Qt中没有办法做到这一点。例如,在Windows上,它可以通过以下方式完成:
arp -a <IP>https://stackoverflow.com/questions/22727687
复制相似问题