#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