#include <MMCSocket.h>
#include <iostream>
using namespace std;
using namespace mmc;
#pragma comment(lib, "MMCSocket.lib")
bool GetIP(MMCSocket *pSock, char *ip);
int main()
{
char ip[BUFSIZ] = {0};
MMCSocket sock;
if ( GetIP(&sock, ip) )
{
cout << "本机外网IP: " << ip << endl;
}
return 0;
}
bool GetIP(MMCSocket *pSock, char *ip)
{
static char strHttp[] = {
"GET /ic.asp HTTP/1.1\r\n"
"HOST: iframe.ip138.com\r\n"
"Connection: close\r\n\r\n"
};
static char buffer[BUFSIZ] = {0};
bool br = false;
if ( pSock->Create("118.144.132.110", 80, MMCSocket::TCP) )
{
if ( pSock->Connect() )
{
int actlen = pSock->TCPSend(strHttp, sizeof(strHttp));
if (actlen > 0)
{
actlen = pSock->TCPRecv(buffer, BUFSIZ);
}
if (actlen > 0)
{
size_t beg = 0, end = 0;
for (size_t i = 0; i != BUFSIZ; ++i)
{
if (buffer[i] == '[')
{
beg = i;
}
else if (buffer[i] == ']')
{
end = i;
break;
}
}
if (beg != 0 && end != 0)
{
memcpy(ip, buffer+beg, end-beg+1);
br = true;
}
}
}
}
return br;
}
IP从 ip138.com 网站获得.