现在的位置: 首页 > 综合 > 正文

获取外网IP

2018年02月08日 ⁄ 综合 ⁄ 共 902字 ⁄ 字号 评论关闭

一个获取外网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;
}

抱歉!评论已关闭.