c ++ - Ekstern IP-adresse
Problem
Mulig duplikat:
Stabil måde at hente den eksterne IP på for en vært bag en NAT
Nå, hej igen. Jeg spekulerede på, hvordan får jeg den eksterne IP-adresse (ekstern, da nogle mennesker har router) på computeren?
Bedste reference
Her er en måde at bruge brugerens forslag på ... Selvfølgelig virker dette kun for din egen ip, som du også kunne bestemme ved at åbne kommandoprompten og køre
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] = ' ';
InternetCloseHandle(hFile);
InternetCloseHandle(hInternet);
std::cout << "Your IP Address: " << buffer << "
";
system("pause");
return 0;
}
FYI: Ejeren af http://www.whatismyip.com/anmode om, at du kun rammer denne automatiseringsside en gang hvert 5. minut , så jeg føler mig tvunget til at lægge en advarsel for ikke at køre denne kode mere ofte end det også: P [4]
Bemærk: http://automation.whatismyip.com/n09230945.asp er den nyeste adresse til automatiseringsfilen. 5 minutters/300 sekunders regel er stadig på plads. [5]
Andre referencer 1
Skriv et program og brug HTTP-protokollen til at oprette forbindelse til nogle eksterne websteder som denne:
http://www.whatismyip.com/[6]
Skriv så en parser for at analysere:
Din IP-adresse er: xxx.xxx.xxx.xxx
Voila.