69 lines
1.7 KiB
C
Raw Normal View History

#pragma once
#include <iostream>
#include <string>
#include <string.h>
#include <sstream>
#include "HyvSdk.h"
/* <20>ͻ<EFBFBD><CDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>豸ǰ׺: 0x7d 0x7c */
#define CLT_SEARCH_REQUEST1 0x7D
#define CLT_SEARCH_REQUEST2 0x7C
/* <20>ɹ<EFBFBD><C9B9><EFBFBD>˻ظ<CBBB>: 0x7d 0x7d */
#define DEV_REPLY1 0x7D
#define DEV_REPLY2 0x7D
/* <20><><EFBFBD><EFBFBD><EFBFBD>˻ظ<CBBB>*/
#define MODIFY_IP_SUCCESSREPLY1 0x7D
#define MODIFY_IP_SUCCESSREPLY2 0x7D
#define MODIFY_IP_FAILREPLY1 0x7B
#define MODIFY_IP_FAILREPLY2 0x7B
#define BUFFER_SIZE 1500
#define CLIENT_SEARCH_DEV_PORT 36377
#define CLIENT_MODIFY_IP_PORT 36388 //<2F>޸<EFBFBD>IP<49><50>TCP<43><50>ʽ
using namespace std;
class HYVSTREAM_API CHyvSNMac
{
private:
CHyvSNMac();
int ParseInfo(char *buffer, char *sn, char *mac);
int CheckIpMasksGateway(char *sIP,char *sMask,char *sGateway);
private:
SOCKET sockClient;
#ifdef WIN32
SOCKADDR_IN addrClient;
#else
struct sockaddr_in addrClient;
#endif
int addr_len;
public:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static CHyvSNMac * Create();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8>Ϣ
// iOvertime:<3A><>ʱʱ<CAB1><CAB1>,<2C><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ֵ 0:<3A>ɹ<EFBFBD> -1:ʧ<><CAA7> 1:ʧ<>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD>
int SearchDevice(int iOvertime);
// <20><>ȡSN<53><4E>Mac1<63><31><EFBFBD>豸IP
// sn,Ҫ<><D2AA>ȡ<EFBFBD><C8A1>SN
// mac,Ҫ<><D2AA>ȡ<EFBFBD><C8A1>Mac1
// sIp,Ҫ<><D2AA>ȡ<EFBFBD><C8A1>IP
// <20><><EFBFBD><EFBFBD>ֵ-1<><31>ʧ<EFBFBD><CAA7> 1:<3A><>ȡ<EFBFBD><C8A1><EFBFBD>ݳ<EFBFBD>ʱ 2<><32><EFBFBD><EFBFBD>ȡʧ<C8A1>ܻ<EFBFBD><DCBB><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ݷǷ<DDB7> 0<><30><EFBFBD><EFBFBD>ȡSN,Mac1,IP<49>ɹ<EFBFBD>
int GetSNMac(char *sn, char *mac,char *sIp);
// <20>޸<EFBFBD><DEB8>豸IP
// sUsr:<3A>˻<EFBFBD><CBBB><EFBFBD>,sPassword:<3A><><EFBFBD><EFBFBD>,sSN:<3A><><EFBFBD>к<EFBFBD>(<28><>GetSNMac<61><63>ȡ), sNetName:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Ŀǰ<C4BF><C7B0>"eth0")
// sSourceIP:Ҫ<>޸ĵ<DEB8>ԴIP<49><50>ַ,sDestIp:Ҫ<>޸ĵ<DEB8>Ŀ<EFBFBD><C4BF>IP<49><50>ַ,sMask:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,sGateway:<3A><><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD>ֵ-2:ʧ<><CAA7> -1:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD>أ<EFBFBD>Ŀ<EFBFBD><C4BF>IP<49><50>ƥ<EFBFBD><C6A5> 1:<3A>޸<EFBFBD>ʧ<EFBFBD><CAA7> 0:<3A>޸ijɹ<C4B3>
int Modify(char *sUsr, char *sPassword, char *sSN, char *sNetName, char *sSourceIP, char *sDestIP, char *sMask, char *sGateway);
// <20>رգ<D8B1><D5A3><EFBFBD><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>
void Close();
private:
unsigned char sndrcvbuf[BUFFER_SIZE];
};