首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt -从IP Adreess获得主机名和MAC地址

Qt -从IP Adreess获得主机名和MAC地址
EN

Stack Overflow用户
提问于 2014-03-29 05:59:42
回答 2查看 5.9K关注 0票数 1

在我的应用程序中,我希望从IP地址(在我的LAN中)获取主机名& MAC地址。我使用了这段代码来查找主机名,但是lineedit中没有出现任何内容。

代码语言:javascript
复制
QHostInfo HI;
QHostAddress HA("192.168.1.1");
QList<QHostAddress> List;
List.append(HA);
HI.setAddresses(List);
ui->ledHostname->setText(HI.hostName());
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-12 16:44:44

我使用了这个代码:

代码语言:javascript
复制
QHostInfo HI = QHostInfo::fromName("192.168.1.50");
ui->ledHostname->setText(HI.hostName());

为一些ip地址工作&显示主机名!对于其他ip地址,再次显示ip地址。

对于我的MAC问题,我使用的是ARP数据包。

票数 0
EN

Stack Overflow用户

发布于 2014-03-29 07:16:31

要从IP地址检索主机名,可以调用lookupHost(),它以主机名或IP地址、接收方对象和插槽签名作为参数。当结果准备就绪时,将调用插槽。结果存储在QHostInfo对象中。调用addresses()获取主机的IP地址列表,调用hostName()获取查找的主机名。

代码语言:javascript
复制
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上,它可以通过以下方式完成:

代码语言:javascript
复制
arp -a <IP>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22727687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档