资源简介
如果要在程序里面用到自己的外网IP,可以下载这个DEMO. 原理很简单,码也少,巧用某网站即可. VC6,VS2010编译测试通过
代码片段和文件信息
// AAA.cpp: implementation of the AAA class.
// Download by http://www.codefans.net
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “TestForNetInfo.h“
#include “AAA.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
#include
#include
AAA::AAA()
{
}
AAA::~AAA()
{
}
CString AAA::GetRIP()
{
CString csRes = “error“;
WSAData wsaDat;
short int Port = 80;
WSAStartup(MAKEWORD(11)&wsaDat);
SOCKET sd = socket(AF_INET SOCK_STREAM 0);
SOCKADDR_IN sockAddr;
memset((void*)&sockAddr0sizeof(sockAddr));
sockAddr.sin_family=AF_INET;
sockAddr.sin_port=htons(Port);
sockAddr.sin_addr.s_addr=inet_addr(“219.153.18.104“);
connect(sd(LPSOCKADDR)&sockAddrsizeof(sockAddr));
char sendstr[]=“GET /ip2city.asp HTTP/1.1\r\nAccept: */*\r\nReferer: ******\r\nUser-Agent: Mozilla/4.0\r\nHost: www.ip138.com\r\nConnection: close\r\n\r\n\0“;
char* p;
int iLen = strlen(sendstr);
p = sendstr;
while (iLen){
int iRet = send(sdpiLen0);
if (iRet > 0) {
p += iRet;
iLen -= iRet;
continue;
}
return csRes;
}
char recvstr[1024];
memset(recvstr01024);
p = recvstr;
char* iIndex_Head ;
iLen = 1024;
int need_len = -1;
while (iLen){
int iRet = recv(sdpiLen0);
if (iRet <= 0) {
return csRes;
}
p += iRet;
iLen -= iRet;
if ((iIndex_Head = strstr(recvstr“\r\n\r\n“))&&(need_len==-1)) {
char* iIndex = strstr(recvstr“Content-Length:“);
if (!iIndex) {
continue;
}
char *p1 = iIndex + strlen(“Content-Length:“);
need_len = iIndex_Head - recvstr + 2 + atol(p1);
}
if (1024 - iLen >=need_len) { break;
}
}
char *p1 = strstr(iIndex_Head“[“);
char *p0 = strstr(p1“]“);
*p0 = ‘\0‘;
printf(“IP=%s“p1+1);
closesocket(sd);
WSACleanup();
csRes = &(p1[1]);
return csRes;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2134 2010-11-23 16:49 GetWanIP\AAA.cpp
文件 486 2010-11-23 14:58 GetWanIP\AAA.h
文件 3723 2010-11-23 14:54 GetWanIP\ReadMe.txt
目录 0 2014-11-10 14:09 GetWanIP\res\
文件 1078 2010-11-23 14:54 GetWanIP\res\TestForNetInfo.ico
文件 406 2010-11-23 14:54 GetWanIP\res\TestForNetInfo.rc2
文件 692 2010-11-23 14:55 GetWanIP\resource.h
文件 216 2010-11-23 14:54 GetWanIP\StdAfx.cpp
文件 1090 2010-11-23 16:49 GetWanIP\StdAfx.h
文件 20824 2010-11-23 15:15 GetWanIP\TestForNetInfo.aps
文件 1136 2010-11-23 15:16 GetWanIP\TestForNetInfo.clw
文件 2211 2010-11-23 16:49 GetWanIP\TestForNetInfo.cpp
文件 4446 2010-11-23 15:16 GetWanIP\TestForNetInfo.dsp
文件 536 2010-11-23 14:54 GetWanIP\TestForNetInfo.dsw
文件 1412 2010-11-23 14:54 GetWanIP\TestForNetInfo.h
文件 5266 2010-11-23 14:55 GetWanIP\TestForNetInfo.rc
文件 4384 2010-11-23 16:49 GetWanIP\TestForNetInfoDlg.cpp
文件 1494 2010-11-23 16:49 GetWanIP\TestForNetInfoDlg.h
文件 50 2010-11-23 15:18 GetWanIP\说明.txt
评论
共有 条评论