最新在撸一本关于TCP/IP的书,因为理论要结合实际,不然对我这种搞工程的人作用不大。
在此准备使用Win10Pcap,尽可能的模拟书上的内容。
使用这个库有如下过程:
首先安装win10pcap
然后在pro文件中设置好对应的库和lib。
下面是官方的查网络适配器的代码,我这里稍微改了下。
当前计算机网络适配器信息:
程序运行截图:
相关源码如下:
pro
QT -= gui
CONFIG += c++11 console
CONFIG -= app_bundle
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
INCLUDEPATH += D:/winscp/WpdPack/Include
LIBS += -L D:/winscp/WpdPack/Lib/libpacket.a \
-L D:/winscp/WpdPack/Lib/libwpcap.a
main.cpp
#include <QCoreApplication>
#include <QDebug>
#include "pcap.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
pcap_if_t *alldevs;
pcap_if_t *d;
int i = 0;
char errbuf[PCAP_ERRBUF_SIZE];
//检索本地适配器设备
if (pcap_findalldevs(&alldevs, errbuf) == -1){
qDebug() << "Error in pcap_findalldevs_ex: " << errbuf;
return 0;
}
//打印
for(d = alldevs; d != NULL; d= d->next)
{
qDebug() << i << ". " << d->name;
if(d->description){
qDebug() << d->description;
}
else{
qDebug() << "No description available";
}
}
if(i == 0){
qDebug() << "No interfaces found! Make sure WinPcap is installed";
return 0;
}
//释放指针
pcap_freealldevs(alldevs);
return a.exec();
}
源码打包下载:
https://github.com/fengfanchen/Qt/tree/master/winscp_begin_in_Qt