Update websites used for GetMyExternalIP

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@180 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
gavinandresen 2010-11-15 21:37:33 +00:00
parent 910bd45756
commit 222e3de4be
2 changed files with 11 additions and 9 deletions

18
net.cpp
View File

@ -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)
{ {

View File

@ -22,7 +22,7 @@ class CDataStream;
class CAutoFile; class CAutoFile;
static const unsigned int MAX_SIZE = 0x02000000; static const unsigned int MAX_SIZE = 0x02000000;
static const int VERSION = 31500; static const int VERSION = 31501;
static const char* pszSubVer = ""; static const char* pszSubVer = "";