VC++获取本机公网IP,VC++没有提供专门的相关函数,但是可以通过访问一个查询IP的网页来获取本机的公网IP。
具体实现代码如下:
TCHAR szTempFile [MAX_PATH];
UINT nResult=GetTempFileName (szTempPath, _T ("~ex"),0,szTempFile);
int ret=URLDownloadToFile(NULL,"http://www.tf163.com/ver/netip.asp",szTempFile,BINDF_GETNEWESTVERSION,NULL);
if (ret==S_OK) //如果下载成功
{
FILE *f;
f=fopen(szTempFile,"rb");
if(f)
{
fseek(f,0,SEEK_END);//得到文件大小
int ilength=ftell(f);
fseek(f,0,SEEK_SET);
if(ilength>0)
{
char *szIP[32];
ZeroMemory(szIP,sizeof(szIP));
fread(szIP,ilength,1,f);
fclose(f);
DeleteFile("ip.ini");
CString csIp;
csIp.Format("外网IP:%s",szIP);
SetDlgItemText(IDC_EDIT_IP,csIp);
}
}
}
else
SetDlgItemText(IDC_EDIT_IP,"Error!");