获取本机所有的网卡IP:
bool listening=false; QTcpServer m_server; QTcpSocket m_socket; QStringList getAllIPAddresses() { QStringList ips; QList< QHostAddress > list = QNetworkInterface::allAddresses(); for (int i = 0; i < list.size(); ++i) { QHostAddress address = list.at(i); // 检查是否为IPv4地址,并排除回环地址 if (address.protocol() == QAbstractSocket::IPv4Protocol && address != QHostAddress::LocalHost) { ips < < address.toString(); } } return ips; } 根据IP地址获取Mac QString getMacByIp(const QString &ip) { QHostInfo info = QHostInfo::fromName(ip); foreach (const QHostAddress &address, info.addresses()) { if (address.protocol() == QAbstractSocket::IPv4Protocol) { foreach (const QNetworkInterface &interface, QNetworkInterface::allInterfaces()) { if (interface.flags().testFlag(QNetworkInterface::IsUp) && interface.flags().testFlag(QNetworkInterface::IsRunning)) { foreach (const QNetworkAddressEntry &entry, interface.addressEntries()) { if (entry.ip() == address) { return interface.hardwareAddress(); } } } } } } return QString(); }
//解析读取IC卡卡号------------------------------------------------------------------------------------------------------------------- void MainWindow::Analyze_c1(QHostAddress ip,quint16 port,unsigned char databuff[], qint64 buflen) { DisableSendAgain(ip, port,databuff,buflen);//确认接收到的信息,否则同一信息读卡器会重发三次 QString IPAddress=QString::asprintf("%d", databuff[1])+"."+QString::asprintf("%d", databuff[2])+"."+QString::asprintf("%d", databuff[3])+"."+QString::asprintf("%d", databuff[4]); //设备IP地址,广域网上使用,一般不对此IP回应,而是对数据流的 ip及端口 回应 QString DeviceNumber=QString::asprintf("%05d",databuff[5]+databuff[6]*256); //设备自编机号 QString FrameNumber=QString::asprintf("%05d",databuff[7]+databuff[8]*256); //数据包号 QString CardnoHexZ=QString::asprintf("%02X%02X%02X%02X", databuff[10],databuff[11],databuff[12],databuff[13]); //16进制卡号正码 QString CardnoHexF=QString::asprintf("%02X%02X%02X%02X", databuff[13],databuff[12],databuff[11],databuff[10]); //16进制卡号反码 bool status; QString Cardno8H10D=QString::asprintf("%010u",CardnoHexF.toUInt(&status,16)); //转8H10D反码卡号 QString SerialNumber=""; //设备全球唯一硬件序号 for (int i=14;itextEdit_M1UID->setText(CardnoHexZ); if(ui->checkBox_Resp->isChecked()){Respondinfo(getsysdatetime()+"卡号:"+Cardno8H10D,ip,port,DeviceNumber);} //回应驱动设备显示+蜂鸣响声 }
主动读取扇区数据的返回-
void MainWindow::Analyze_c3(QHostAddress ip,quint16 port,unsigned char databuff[], qint64 buflen)
{
QString IPAddress=QString::asprintf("%d", databuff[1])+"."+QString::asprintf("%d", databuff[2])+"."+QString::asprintf("%d", databuff[3])+"."+QString::asprintf("%d", databuff[4]); //设备IP地址,广域网上使用,一般不对此IP回应,而是对数据流的 ip及端口 回应
QString DeviceNumber=QString::asprintf("%05d",databuff[5]+databuff[6]*256); //设备自编机号
QString CardnoHex="";
for (int i=12;i< 16;i++){
CardnoHex=CardnoHex+QString::asprintf("%02X", databuff[i]);
}
int j=databuff[10]*48;
int m=databuff[11]*48;
for(int i=0;i< m;i++){
readcardbuf[j+1]=databuff[16+i];
}
if((databuff[10]+databuff[11]) >=databuff[9]){
m=databuff[9]*48;
QString DataHex="";
for (int i=0;i< m;i++){
DataHex=DataHex+QString::asprintf("%02X ",readcardbuf[i]);
}
ui- >textEdit_data->setPlainText(DataHex);
QString DispInf="读取M1卡扇区数据成功,设备IP:"+IPAddress+",机号:"+DeviceNumber+",16进制卡号:"+CardnoHex;
listadditems(1,DispInf);
ui->textEdit_M1UID->setText(CardnoHex);
if(ui->checkBox_Resp->isChecked()){Respondinfo(getsysdatetime()+"卡号:"+CardnoHex,ip,port,DeviceNumber);} //回应驱动设备显示+蜂鸣响声
}
}

审核编辑 黄宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
读卡器
+关注
关注
2文章
462浏览量
41151 -
Qt
+关注
关注
2文章
318浏览量
40295
发布评论请先 登录
相关推荐
热点推荐
ST25R100:高性能、低功耗的NFC/HF RFID读卡器IC
),数据传输速度高达6Mbit/s。ST25R100读卡器IC设计用于在2.7V至5.5V宽电源电压范围内工作,具有-25°C至85°C宽环境温度范围。典型应用包括美容和生活方式、品牌保护、附件识别、自动参数设置、识别、医疗保健
DD3118 高集成度读卡器控制芯片数据手册
DD3118是一款采用40纳米低功耗技术制造的高性能、高集成度读卡器控制芯 片,专为读卡器设计。作为读卡器的核心功能模块,DD3118支持USB 3.0、SD 3.0和eMMC 4.5标准协议,能够稳定访问存储在内存
发表于 06-16 16:14
•7次下载
MAX14502高速USB至SD读卡器,提供旁路控制技术手册
变化。在读卡器模式下,MAX14502实现了一个高速USB卡读卡器,可独立于主机微处理器运行。所有全速USB端口和SD卡插槽的功能都得以保留
MAXQ1743 DeepCover安全磁卡读卡器IC技术手册
DeepCover 嵌入式安全方案采用多重先进的物理安全机制保护敏感数据,提供最高等级的密钥存储安全保护。
DeepCover MAXQ1743是集成的三轨磁条读卡器IC,在机器/磁卡接口上为POS终端或ATM
用于LEGIC Advant UID/序列号的NFC读卡器,为什么无法读取这些卡的UID/序列号?
的是,这个读卡器根本不识别 LEGIC 卡,只能识别 MIFARE 卡。
根据产品规格“支持 ISO/IEC 14443 A/MIFARE 和 NTAG”,我认为这是可能的,因为 LEGIC
发表于 04-02 08:07
Nand flash 和SD卡(SD NAND)存储扇区分配表异同
了解存储扇区的分配情况。
Linux 系统:
使用 fdisk 命令:
将 SD 卡插入读卡器并连接到电脑。
打开终端,输入命令 “sudo fdisk -l /dev/sdX”(将
发表于 03-13 10:45
Android 实现读卡器读取各种卡号的信息
以超薄便携USB免驱全协议NFC读写器为例,开发安卓小程序 超薄便携USB免驱全协议NFC读写器 APP的首界面: 页面代码: 使用了ConstraintLayout作为根布局

网络读卡器qt代码示例,包含获取本地ip地址。读取IC卡卡号,读取扇区数据
评论