一个获取外网IP的小程序bool GetIPAddress(char *szIP,char *szFileName)
bool GetIPAddress(char *szIP,char *szFileName)
{
//szIP是一个接受IP的buff
//szFileName是一个ip138返回的页面存储的本地文件
//http://www.ip138.com/ip2city.asp
HRESULT hResult = NULL;
hResult = URLDownloadToFileA(0,"http://iframe.ip138.com/ic.asp",szFileName,0,NULL);
if (S_OK != hResult)
{
return false;
}
DWORD dwRead = 0;
char szBuffer[1024] = {0};
HANDLE hReadFile = INVALID_HANDLE_VALUE;
//把ip138返回的信息读取出来
hReadFile = CreateFileA(szFileName,GENERIC_READ,NULL,NULL,OPEN_EXISTING,NULL,NULL);
if (INVALID_HANDLE_VALUE == hReadFile)
{
return false;
}
ReadFile(hReadFile,szBuffer,sizeof(szBuffer),&dwRead,NULL);
CloseHandle(hReadFile);
DeleteFileA(szFileName);
int iLen = 0;
char *szEnd = NULL;
char *szBegin = NULL;
szBegin = StrStrIA(szBuffer,"您的IP是:[");
if (NULL == szBegin)
{
return false;
}
szBegin += lstrlenA("您的IP是:[");
szEnd = StrStrIA(szBegin,"]");
if (NULL == szEnd)
{
return false;
}
iLen = szEnd - szBegin;
lstrcpynA(szIP,szBegin,iLen + 1);
return true;
}