局域网ip扫描工具_IP Scanner Pro for mac(局域网IP扫描软件)

IP Scanner Pro mac是一款功能强大的局域网IP扫描工具,IP Scanner Pro扫描本地网络以建立具有IP地址的所有计算机和设备。可以根据需要安排扫描结果。识别设备后,可以为其分配任何名称和图标,以便在常规列表中更容易识别。

bde885a3c68bd74656c806a552958086.png

软件介绍

用于Macintosh的IP扫描程序扫描您的局域网,以确定LAN上所有计算机和Internet设备的标识。功能强大,使用简单直观。在OS X 10.4及更高版本上运行。可在小型网络(最多6台设备)上免费使用,适用于大型网络的Home和Pro版本。IP Scanner旨在允许您自定义扫描结果; 一旦识别出设备,您可以为其分配一个自定义图标和名称,以便更容易一目了然地识别它。

cb2ce43e75e440440dbc78985a0ed251.png

软件特点

按设备名称,IP地址,MAC地址或上次查看对网络列表进行排序

•在“累积模式”下了解当前网络或查看一段时间内的变化

•高度可配置的显示 - 不需要查看MAC地址列...不显示它!文字太小......让它变大!!

•双击设备以获取更多信息并自定义其外观; 根据MAC地址或IP号分配自定义图标

•将您知道的设备添加到白名单中,以更好地突出显示新的/未知的设备

•右键单击设备以启动Ping或端口扫描

•自动扫描本地网段; 可以手动添加自定义范围

9a6ff6abebc39a238bf1fcd64768b25f.png

推荐理由

IP Scanner Pro是一个多功能且直观的局域网ip扫描工具,能够帮助Mac用户轻松找到网络上的所有活动设备,以确定所有连接的计算机和设备的身份

以下是一个简单的基于Qt的局域网IP扫描代码示例,可以实现扫描在线IP并输出其MAC地址。该代码使用了Qt的网络模块,其中包括了QNetworkInterface和QNetworkAddressEntry等类。 ```cpp #include <QCoreApplication> #include <QNetworkInterface> #include <QHostInfo> #include <QNetworkRequest> #include <QNetworkReply> #include <QJsonObject> #include <QJsonDocument> #include <QTimer> class IPScanner : public QObject { Q_OBJECT public: IPScanner(QObject* parent = nullptr) : QObject(parent) { connect(&m_manager, &QNetworkAccessManager::finished, this, &IPScanner::onRequestFinished); m_timer.setSingleShot(true); connect(&m_timer, &QTimer::timeout, this, &IPScanner::onTimerTimeout); } void start() { m_interfaces = QNetworkInterface::allInterfaces(); m_currentInterfaceIndex = -1; m_timer.start(0); } private slots: void onTimerTimeout() { m_currentInterfaceIndex++; if (m_currentInterfaceIndex >= m_interfaces.size()) { // 扫描完成 emit finished(); return; } QNetworkInterface interface = m_interfaces[m_currentInterfaceIndex]; QList<QNetworkAddressEntry> entries = interface.addressEntries(); for (auto entry : entries) { if (entry.ip().protocol() == QAbstractSocket::IPv4Protocol) { QString ip = entry.ip().toString(); QString subnetMask = entry.netmask().toString(); QStringList ipParts = ip.split("."); QStringList subnetMaskParts = subnetMask.split("."); QStringList networkParts; for (int i = 0; i < 4; i++) { networkParts.append(QString::number(ipParts[i].toInt() & subnetMaskParts[i].toInt())); } QString network = networkParts.join("."); for (int i = 1; i < 255; i++) { QString testIp = QString("%1.%2").arg(network).arg(i); if (testIp != ip) { QNetworkRequest request(QUrl(QString("http://%1:8080/").arg(testIp))); m_manager.get(request); } } } } m_timer.start(1000); // 每个接口扫描1秒钟 } void onRequestFinished(QNetworkReply* reply) { if (reply->error() == QNetworkReply::NoError) { QByteArray data = reply->readAll(); QJsonDocument doc = QJsonDocument::fromJson(data); if (!doc.isNull() && doc.isObject()) { QJsonObject obj = doc.object(); QString mac = obj.value("mac").toString(); if (!mac.isEmpty()) { QString ip = reply->url().host(); emit ipFound(ip, mac); } } } reply->deleteLater(); } signals: void ipFound(const QString& ip, const QString& mac); void finished(); private: QList<QNetworkInterface> m_interfaces; int m_currentInterfaceIndex; QNetworkAccessManager m_manager; QTimer m_timer; }; int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); IPScanner scanner; QObject::connect(&scanner, &IPScanner::ipFound, [](const QString& ip, const QString& mac) { qDebug() << ip << mac; }); QObject::connect(&scanner, &IPScanner::finished, &a, &QCoreApplication::quit); scanner.start(); return a.exec(); } #include "main.moc" ``` 上述代码通过遍历所有网络接口,获取其IP地址和子网掩码,然后计算出其所在的网络地址。然后,对该网络地址下的所有IP进行扫描,使用QNetworkAccessManager发送HTTP请求并等待响应。如果响应中包含MAC地址,则表示该IP在线并且可用,将其IPMAC地址通过信号发送出去。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值