獲取本機所有的網卡IP:
bool listening=false; QTcpServer m_server; QTcpSocket m_socket; QStringList getAllIPAddresses() { QStringList ips; QList 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;i16;i++){ CardnoHex=CardnoHex+QString::asprintf("%02X", databuff[i]); } int j=databuff[10]*48; int m=databuff[11]*48; for(int i=0;i=databuff[9]){ m=databuff[9]*48; QString DataHex=""; for (int i=0;itextEdit_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);} //回應驅動設備顯示+蜂鳴響聲 } }
![wKgZO2dvuAWAAy41AAD5NF8luhw742.png](https://file1.elecfans.com/web3/M00/04/2E/wKgZO2dvuAWAAy41AAD5NF8luhw742.png)
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
讀卡器
+關注
關注
2文章
419瀏覽量
39495 -
Qt
+關注
關注
1文章
309瀏覽量
38102
發布評論請先 登錄
相關推薦
ID讀卡器TCP協議QT小程序開發
ID卡網絡讀卡器TCP協議QT小程序開發。 TCP(傳輸控制協議,Transmission Control Protocol)是互聯網中最核心、最基本的協議之一。以下是對TCP協議的詳
![ID<b class='flag-5'>讀卡器</b>TCP協議<b class='flag-5'>QT</b>小程序開發](https://file1.elecfans.com/web3/M00/04/5B/wKgZPGdzTm2AN68GAAPBNk4wtZw082.png)
Android 實現讀卡器讀取各種卡號的信息
以超薄便攜USB免驅全協議NFC讀寫器為例,開發安卓小程序 超薄便攜USB免驅全協議NFC讀寫器 APP的首界面: 頁面代碼: 使用了ConstraintLayout作為根布局
![Android 實現<b class='flag-5'>讀卡器</b><b class='flag-5'>讀取</b>各種<b class='flag-5'>卡號</b>的信息](https://file1.elecfans.com/web3/M00/04/47/wKgZPGdySdqAVUCnAARNaLOGMZ8799.png)
android如何獲取本機ip地址及ip歸屬地
# 前言 # 本篇文章主要介紹android如何獲取本機ip地址及ip歸屬地。 ? # 定義 # ip地
AGV讀卡器在AGV自動搬運小車上應用方案
AGV小車上的AGV讀卡器通過讀取地面軌道的RFID電子標簽信息,做出相應的動作(如改變速度、選擇軌道、定位和停車等)。在AGV小車經過站點A處時,AGV讀卡器讀取A處的電子標簽ID號
![AGV<b class='flag-5'>讀卡器</b>在AGV自動搬運小車上應用方案](https://file1.elecfans.com/web2/M00/0A/48/wKgaomcKQaqATRD6AAKOyp0gdmQ914.png)
物聯網產品快速獲取SIM卡ICCID、IMEI的生產測試方案_讀卡表方案詳解
軟件,以及上位機軟件進行設備iID與卡號統計。用這種方式會耗費較長的測試時間。讀卡表可以完全的替換傳統工裝讀卡,讀設備ID等操作. 使用讀卡表統計設備ID與SIM
![物聯網產品快速<b class='flag-5'>獲取</b>SIM<b class='flag-5'>卡</b>ICCID、IMEI的生產測試方案_<b class='flag-5'>讀卡</b>表方案詳解](https://file1.elecfans.com//web2/M00/09/A9/wKgaomb6T0yAVGwMAAaBHCDbJxw582.jpg)
身份證云解碼模塊嵌入式身份證讀卡器 (CSYJM-3)
通信讀卡。
有蜂鳴器,支持聲音的開啟和關閉。
解碼類型支持無照片和本地解碼照片。
讀卡模式支持單次讀卡和循環讀卡。
發表于 09-04 14:57
使用.cmm閃存初始SW借助Trace32 SW腳本,數據無法從高速緩存內存讀取特定扇區的數據,為什么?
。 對于某個扇區,我們無法從高速緩存地址讀取數據。 但通過非緩存地址,我們可以從同一地址
發表于 06-03 08:20
CR95HF評估板(M24LR-DISCOVERY)例程能否增加對ISO14443-A卡讀數據塊和寫數據塊的函數?
CR95HF_Development_Software軟件開發時,已經成功讀取ISO14443-A卡號UID,下一步讀卡扇區數據指令是什么,
發表于 05-14 06:44
評論