Skip to content

Commit c279a9e

Browse files
committed
added:ipaddr information parse for apihelp
1 parent 75285cb commit c279a9e

File tree

6 files changed

+94
-3
lines changed

6 files changed

+94
-3
lines changed

XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.cpp

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,5 +222,65 @@ BOOL CAPIHelp_Api::APIHelp_Api_VerHash(LPCTSTR lpszFileHash, TCHAR** pptszListHd
222222
APIHelp_dwErrorCode = ERROR_STORAGE_MODULE_APIHELP_NOTMATCH;
223223
return FALSE;
224224
}
225+
return TRUE;
226+
}
227+
/********************************************************************
228+
函数名称:APIHelp_Api_GetIPInfo
229+
函数功能:获取IP信息
230+
参数.一:lpszMsgBuffer
231+
In/Out:In
232+
类型:常量字符指针
233+
可空:N
234+
意思:输入要操作的缓冲区
235+
参数.二:nMsgLen
236+
In/Out:In
237+
类型:整数型
238+
可空:N
239+
意思:输入要操作的大小
240+
参数.三:pSt_IPAddrInfo
241+
In/Out:Out
242+
类型:数据结构指针
243+
可空:N
244+
意思:输出获取到的IP信息
245+
返回值
246+
类型:逻辑型
247+
意思:是否成功
248+
备注:
249+
*********************************************************************/
250+
BOOL CAPIHelp_Api::APIHelp_Api_GetIPInfo(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo)
251+
{
252+
APIHelp_IsErrorOccur = FALSE;
253+
254+
Json::Value st_JsonRoot;
255+
JSONCPP_STRING st_JsonError;
256+
Json::CharReaderBuilder st_JsonBuilder;
257+
//解析
258+
std::unique_ptr<Json::CharReader> const pSt_JsonReader(st_JsonBuilder.newCharReader());
259+
if (!pSt_JsonReader->parse(lpszMsgBuffer, lpszMsgBuffer + nMsgLen, &st_JsonRoot, &st_JsonError))
260+
{
261+
APIHelp_IsErrorOccur = TRUE;
262+
APIHelp_dwErrorCode = ERROR_STORAGE_MODULE_APIHELP_PARSE;
263+
return FALSE;
264+
}
265+
//是否获取成功
266+
if (0 != st_JsonRoot["code"].asInt())
267+
{
268+
APIHelp_IsErrorOccur = TRUE;
269+
APIHelp_dwErrorCode = ERROR_STORAGE_MODULE_APIHELP_CODE;
270+
return FALSE;
271+
}
272+
Json::Value st_JsonObject = st_JsonRoot["data"];
273+
274+
_tcscpy(pSt_IPAddrInfo->tszIPStart, st_JsonObject["tszIPStart"].asCString());
275+
_tcscpy(pSt_IPAddrInfo->tszIPEnd, st_JsonObject["tszIPEnd"].asCString());
276+
_tcscpy(pSt_IPAddrInfo->tszIPAddress, st_JsonObject["tszIPAddress"].asCString());
277+
_tcscpy(pSt_IPAddrInfo->tszIPAddr, st_JsonObject["tszIPAddr"].asCString());
278+
_tcscpy(pSt_IPAddrInfo->tszIPCity, st_JsonObject["tszIPCity"].asCString());
279+
_tcscpy(pSt_IPAddrInfo->tszIPCountry, st_JsonObject["tszIPCountry"].asCString());
280+
_tcscpy(pSt_IPAddrInfo->tszIPCounty, st_JsonObject["tszIPCounty"].asCString());
281+
_tcscpy(pSt_IPAddrInfo->tszIPProvince, st_JsonObject["tszIPProvince"].asCString());
282+
_tcscpy(pSt_IPAddrInfo->tszIPISP, st_JsonObject["tszIPISP"].asCString());
283+
_tcscpy(pSt_IPAddrInfo->tszIPTime, st_JsonObject["tszIPTime"].asCString());
284+
225285
return TRUE;
226286
}

XEngine_Source/StorageModule_APIHelp/APIHelp_Api/APIHelp_Api.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ class CAPIHelp_Api
2121
BOOL APIHelp_Api_ProxyAuth(TCHAR* ptszUser, TCHAR* ptszPass, TCHAR** pptszListHdr, int nHdrCount);
2222
BOOL APIHelp_Api_RangeFile(int* pInt_SPos, int* pInt_EPos, __int64x* pInt_Count, TCHAR** pptszListHdr, int nHdrCount);
2323
BOOL APIHelp_Api_VerHash(LPCTSTR lpszFileHash, TCHAR** pptszListHdr, int nHdrCount);
24+
BOOL APIHelp_Api_GetIPInfo(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo);
2425
protected:
2526
private:
2627
};

XEngine_Source/StorageModule_APIHelp/APIHelp_Define.h

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,4 +236,28 @@ extern "C" BOOL APIHelp_Api_RangeFile(int* pInt_SPos, int* pInt_EPos, __int64x*
236236
意思:是否成功
237237
备注:
238238
*********************************************************************/
239-
extern "C" BOOL APIHelp_Api_VerHash(LPCTSTR lpszFileHash, TCHAR** pptszListHdr, int nHdrCount);
239+
extern "C" BOOL APIHelp_Api_VerHash(LPCTSTR lpszFileHash, TCHAR** pptszListHdr, int nHdrCount);
240+
/********************************************************************
241+
函数名称:APIHelp_Api_GetIPInfo
242+
函数功能:获取IP信息
243+
参数.一:lpszMsgBuffer
244+
In/Out:In
245+
类型:常量字符指针
246+
可空:N
247+
意思:输入要操作的缓冲区
248+
参数.二:nMsgLen
249+
In/Out:In
250+
类型:整数型
251+
可空:N
252+
意思:输入要操作的大小
253+
参数.三:pSt_IPAddrInfo
254+
In/Out:Out
255+
类型:数据结构指针
256+
可空:N
257+
意思:输出获取到的IP信息
258+
返回值
259+
类型:逻辑型
260+
意思:是否成功
261+
备注:
262+
*********************************************************************/
263+
extern "C" BOOL APIHelp_Api_GetIPInfo(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_IPADDRINFO* pSt_IPAddrInfo);

XEngine_Source/StorageModule_APIHelp/APIHelp_Error.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@
1919
#define ERROR_STORAGE_MODULE_APIHELP_PARSELEN 0x0030013 //解析长度失败
2020
#define ERROR_STORAGE_MODULE_APIHELP_NOTHASH 0x0030014 //没有HASH值
2121
#define ERROR_STORAGE_MODULE_APIHELP_NOTMATCH 0x0030015 //HASH不匹配
22-
#define ERROR_STORAGE_MODULE_APIHELP_SIZE 0x0030016 //目录大小已经满了
22+
#define ERROR_STORAGE_MODULE_APIHELP_SIZE 0x0030016 //目录大小已经满了
23+
#define ERROR_STORAGE_MODULE_APIHELP_CODE 0x0030017 //服务器返回失败

XEngine_Source/StorageModule_APIHelp/StorageModule_APIHelp.def

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ EXPORTS
1111

1212
APIHelp_Api_ProxyAuth
1313
APIHelp_Api_RangeFile
14-
APIHelp_Api_VerHash
14+
APIHelp_Api_VerHash
15+
APIHelp_Api_GetIPInfo

XEngine_Source/StorageModule_APIHelp/pch.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,8 @@ extern "C" BOOL APIHelp_Api_RangeFile(int* pInt_SPos, int* pInt_EPos, __int64x *
6565
extern "C" BOOL APIHelp_Api_VerHash(LPCTSTR lpszFileHash, TCHAR * *pptszListHdr, int nHdrCount)
6666
{
6767
return m_APIHelp.APIHelp_Api_VerHash(lpszFileHash, pptszListHdr, nHdrCount);
68+
}
69+
extern "C" BOOL APIHelp_Api_GetIPInfo(LPCTSTR lpszMsgBuffer, int nMsgLen, XENGINE_IPADDRINFO * pSt_IPAddrInfo)
70+
{
71+
return m_APIHelp.APIHelp_Api_GetIPInfo(lpszMsgBuffer, nMsgLen, pSt_IPAddrInfo);
6872
}

0 commit comments

Comments
 (0)