if(asLowerCaseString(ip) == "auto")
{
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2, 0), &wsaData) == 0)
{
SOCKET s = socket(AF_INET, SOCK_STREAM, 0);
HOSTENT *host;
host = gethostbyname("www.whatismyip.com");
SOCKADDR_IN sin;
memset(&sin, 0, sizeof sin);
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = ((struct in_addr*)(host->h_addr))->s_addr;
sin.sin_port = htons(80);
if(connect(s, (struct sockaddr*)&sin, sizeof(sin)) != SOCKET_ERROR)
{
std::string request = "GET http://automation.whatismyip.com/n09230945.asp HTTP/1.1\r\nHost: www.whatismyip.com\r\n\r\n";
if(send(s, request.c_str(), request.length(), 0) != request.length())
std::cout << "Error sending request: " << WSAGetLastError() << std::endl;
char buffer[2048];
std::string response;
recv(s, (char*)&buffer, 2048, 0);
response = std::string(buffer);
int start = int(response.find("\r\n\r\n"));
int iplength = response.length()-start;
ip = "";
for(int i = start; i < response.length(); i++)
{
if((response.at(i) >= '0' && response.at(i) <= '9') || response.at(i) == '.')
ip += response.at(i);
}
closesocket(s);
}
}
else
ip="127.0.0.1";
}