可能重复:
Stable way of retrieving the external IP for a host behind a NAT
嗯,再次问好。我想知道如何获得计算机的外部IP地址(外部因为有些人有路由器)?
答案 0 :(得分:3)
答案 1 :(得分:1)
这是使用用户建议的一种方式...当然这只适用于您自己的IP,您也可以通过打开命令提示符并运行ipconfig /all
来确定
#include <windows.h>
#include <wininet.h>
#include <iostream>
#pragma comment(lib, "wininet")
int main(int argc, char* argv[])
{
HINTERNET hInternet, hFile;
DWORD rSize;
char buffer[32];
hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
hFile = InternetOpenUrl(hInternet, "http://automation.whatismyip.com/n09230945.asp", NULL, 0, INTERNET_FLAG_RELOAD, 0);
InternetReadFile(hFile, &buffer, sizeof(buffer), &rSize);
buffer[rSize] = '\0';
InternetCloseHandle(hFile);
InternetCloseHandle(hInternet);
std::cout << "Your IP Address: " << buffer << "\n";
system("pause");
return 0;
}
仅供参考:http://www.whatismyip.com/的所有者请求您每隔5分钟才会点击此自动化页面 ,因此我不得不提出一个警告,不要经常运行此代码,而不是好吧:P
注意:http://automation.whatismyip.com/n09230945.asp是自动化文件的最新地址。 5分/ 300秒规则仍然存在。