#include "stdafx.h"
#include <windows.h>
#include <wininet.h>
#pragma comment(lib,"wininet.lib")
char * real_ip() {
HINTERNET net = InternetOpen(_T("IP retriever"),INTERNET_OPEN_TYPE_PRECONFIG,NULL,NULL,0);
HINTERNET conn = InternetOpenUrl(net,_T("http://api.ipify.org/"),NULL,0,INTERNET_FLAG_RELOAD,0);
char buffer[4096];
DWORD read;
InternetReadFile(conn, buffer, sizeof(buffer) / sizeof(buffer[0]), &read);
InternetCloseHandle(net);
return buffer;
}
int main()
{
char * ip = real_ip();
printf(ip);
getchar();
}
如题代码奉上, 每次运行,360都会报出 ,有程序在修改IE连接设置。修改的值:
HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\CONNECTIONS\[DefaultConnectionSettings]\[46 00 00 00 03 00 XX XX XX XX]
这是为什么?why?是原因是打开的网站问题,还是个人电脑里的某个函数被什么病毒劫持了?

解决方案
80
你real_ip返回的是一个局部变量,函数结束后就销毁了
10
推荐使用软件regmon