|
|
@ -128,7 +128,7 @@ bool GetMyExternalIP2(const CAddress& addrConnect, const char* pszGet, const cha |
|
|
|
string strLine; |
|
|
|
string strLine; |
|
|
|
while (RecvLine(hSocket, strLine)) |
|
|
|
while (RecvLine(hSocket, strLine)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (strLine.empty()) |
|
|
|
if (strLine.empty()) // HTTP response is separated from headers by blank line
|
|
|
|
{ |
|
|
|
{ |
|
|
|
loop |
|
|
|
loop |
|
|
|
{ |
|
|
|
{ |
|
|
@ -137,6 +137,8 @@ bool GetMyExternalIP2(const CAddress& addrConnect, const char* pszGet, const cha |
|
|
|
closesocket(hSocket); |
|
|
|
closesocket(hSocket); |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (pszKeyword == NULL) |
|
|
|
|
|
|
|
break; |
|
|
|
if (strLine.find(pszKeyword) != -1) |
|
|
|
if (strLine.find(pszKeyword) != -1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
strLine = strLine.substr(strLine.find(pszKeyword) + strlen(pszKeyword)); |
|
|
|
strLine = strLine.substr(strLine.find(pszKeyword) + strlen(pszKeyword)); |
|
|
@ -176,26 +178,26 @@ bool GetMyExternalIP(unsigned int& ipRet) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (nHost == 1) |
|
|
|
if (nHost == 1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
addrConnect = CAddress("70.86.96.218:80"); // www.ipaddressworld.com
|
|
|
|
addrConnect = CAddress("72.233.89.199:80"); // www.whatismyip.com
|
|
|
|
|
|
|
|
|
|
|
|
if (nLookup == 1) |
|
|
|
if (nLookup == 1) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct hostent* phostent = gethostbyname("www.ipaddressworld.com"); |
|
|
|
struct hostent* phostent = gethostbyname("www.whatismyip.com"); |
|
|
|
if (phostent && phostent->h_addr_list && phostent->h_addr_list[0]) |
|
|
|
if (phostent && phostent->h_addr_list && phostent->h_addr_list[0]) |
|
|
|
addrConnect = CAddress(*(u_long*)phostent->h_addr_list[0], htons(80)); |
|
|
|
addrConnect = CAddress(*(u_long*)phostent->h_addr_list[0], htons(80)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
pszGet = "GET /ip.php HTTP/1.1\r\n" |
|
|
|
pszGet = "GET /automation/n09230945.asp HTTP/1.1\r\n" |
|
|
|
"Host: www.ipaddressworld.com\r\n" |
|
|
|
"Host: www.whatismyip.com\r\n" |
|
|
|
"User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)\r\n" |
|
|
|
"User-Agent: Bitcoin/1.0 (see www.bitcoin.org)\r\n" |
|
|
|
"Connection: close\r\n" |
|
|
|
"Connection: close\r\n" |
|
|
|
"\r\n"; |
|
|
|
"\r\n"; |
|
|
|
|
|
|
|
|
|
|
|
pszKeyword = "IP:"; |
|
|
|
pszKeyword = NULL; // Returns just IP address
|
|
|
|
} |
|
|
|
} |
|
|
|
else if (nHost == 2) |
|
|
|
else if (nHost == 2) |
|
|
|
{ |
|
|
|
{ |
|
|
|
addrConnect = CAddress("208.78.68.70:80"); // checkip.dyndns.org
|
|
|
|
addrConnect = CAddress("91.198.22.70:80"); // checkip.dyndns.org
|
|
|
|
|
|
|
|
|
|
|
|
if (nLookup == 1) |
|
|
|
if (nLookup == 1) |
|
|
|
{ |
|
|
|
{ |
|
|
|